#
# Copyright 2021-2022 the original author or authors.
#
# Licensed 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.
#

# see https://s.apache.org/asfyaml
github:
  description: "Apache Maven Daemon"
  homepage: https://maven.apache.org/
  labels:
    - java
    - build-management
    - apache-maven
    - maven
  enabled_merge_buttons:
    squash: true
    merge: false
    rebase: true
notifications:
  commits: commits@maven.apache.org
  issues: issues@maven.apache.org
  pullrequests: issues@maven.apache.org
  jira_options: link label comment
