#
# 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: Linkis helps easily connect to various back-end computation/storage engines(Spark, Python, TiDB...), exposes various interfaces(REST, JDBC, Java ...), with multi-tenancy, high performance, and resource control.
  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
  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.2.0:
      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