#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

github:
  description: "Apache Pulsar C++ client library"
  homepage: https://pulsar.apache.org/
  labels:
    - pulsar
    - pubsub
    - messaging
    - streaming
    - queuing
    - event-streaming
  features:
    # Enable wiki for documentation
    wiki: true
    # Enable issues management
    issues: true
    # Enable projects for project management boards
    projects: true
  enabled_merge_buttons:
    # enable squash button:
    squash:  true
    # disable merge button:
    merge:   false
    # disable rebase button:
    rebase:  false
  protected_branches:
    main:
      required_status_checks:
      #   # strict means "Require branches to be up to date before merging".
        strict: false
      #   # Contexts are the names of checks that must pass.
      #   # See ./github/workflows/README.md for more documentation on this list.
        contexts:
           - Check Completion

      required_pull_request_reviews:
        dismiss_stale_reviews: false
        require_code_owner_reviews: true
        required_approving_review_count: 1

      # squash or rebase must be allowed in the repo for this setting to be set to true.
      required_linear_history: true

      required_signatures: false

    # The following branch protections only ensure that force pushes are not allowed
    # branch-3.xxx: {}


notifications:
  commits:      commits@pulsar.apache.org
  issues:       commits@pulsar.apache.org
  pullrequests: commits@pulsar.apache.org
  discussions:  dev@pulsar.apache.org
  jira_options: link label
