# 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.
# https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories
github:
  description: "Apache Airflow - OpenApi Client for Javascript"
  homepage: https://airflow.apache.org/
  labels:
    - airflow
    - apache
    - apache-airflow
    - apache-airflow-client
    - javascript
  features:
    # Enable issues management
    issues: false
    # Enable projects for project management boards
    projects: false
  enabled_merge_buttons:
    squash: true
    merge: false
    rebase: false
notifications:
  commits:      commits@airflow.apache.org
  issues:       commits@airflow.apache.org
  pullrequests: commits@airflow.apache.org
