# 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.

# For more information, see https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features.

github:
  description: >-
    Apache Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine
    and is compatible with Redis protocol.
  homepage: https://kvrocks.apache.org/
  labels:
    - database
    - distributed
    - kv
    - namespace
    - redis
    - redis-cluster
  pull_requests:
    allow_auto_merge: true
    allow_update_branch: true
  enabled_merge_buttons:
    squash:  true
    squash_commit_message: PR_TITLE_AND_DESC
    merge:   false
    rebase:  true
  features:
    wiki: false
    issues: true
    projects: true
    discussions: true
  protected_branches:
    unstable:
      required_pull_request_reviews:
        dismiss_stale_reviews: true
        required_approving_review_count: 1
      required_status_checks:
        strict: true
        contexts:
          - Required
    '1.3': {}
    '2.0': {}
    '2.1': {}
    '2.2': {}
    '2.3': {}
    '2.4': {}
    '2.5': {}
    '2.6': {}
    '2.7': {}
    '2.8': {}
    '2.9': {}
    '2.10': {}
    '2.11': {}
    '2.12': {}
    '2.13': {}

notifications:
  commits:      commits@kvrocks.apache.org
  issues:       issues@kvrocks.apache.org
  pullrequests: issues@kvrocks.apache.org
  jobs:         builds@kvrocks.apache.org
  discussions:  issues@kvrocks.apache.org
