#
# 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:
  features:
    # Enable issue management
    issues: true
    # Enable wiki for documentation
    wiki: false
    # Enable projects for project management boards
    projects: true
  description: Apache Linkis builds a computation middleware layer to facilitate connection, governance and orchestration between the upper applications and the underlying data engines.
  homepage: https://linkis.apache.org/
  labels:
    - sql
    - spark
    - presto
    - hive
    - storage
    - jdbc
    - rest-api
    - engine
    - impala
    - pyspark
    - udf
    - thrift-server
    - resource-manager
    - jobserver
    - application-manager
    - livy
    - hive-table
    - linkis
    - context-service
    - scriptis
  collaborators:
    - aiceflower
    - brucedchen1991
    - binbinCheng
    - ws00428637
    - yyuser5201314
    - KangTomwk
    - guoshupei
    - rarexixi
  enabled_merge_buttons:
    merge:  true
    squash: true
    rebase: true
  protected_branches:
    master:
      required_status_checks:
        strict: true
      required_pull_request_reviews:
        dismiss_stale_reviews: true
        required_approving_review_count: 2
    dev-1.3.1:
      required_status_checks:
        strict: true
      required_pull_request_reviews:
        dismiss_stale_reviews: true
        required_approving_review_count: 1
    dev-1.3.2:
      required_status_checks:
        strict: true
      required_pull_request_reviews:
        dismiss_stale_reviews: true
        required_approving_review_count: 1
notifications:
  commits: commits@linkis.apache.org
  issues: notifications@linkis.apache.org
  pullrequests: notifications@linkis.apache.org