solana/.mergify.yml

127 lines
3.5 KiB
YAML

# Validate your changes with:
#
# $ curl -F 'data=@.mergify.yml' https://gh.mergify.io/validate/
#
# https://doc.mergify.io/
pull_request_rules:
- name: label changes from community
conditions:
- author≠@core-contributors
- author≠mergify[bot]
- author≠dependabot[bot]
- author≠github-actions[bot]
actions:
label:
add:
- community
- name: request review for community changes
conditions:
- author≠@core-contributors
- author≠mergify[bot]
- author≠dependabot[bot]
- author≠github-actions[bot]
# Only request reviews from the pr subscribers group if no one
# has reviewed the community PR yet. These checks only match
# reviewers with admin, write or maintain permission on the repository.
- "#approved-reviews-by=0"
- "#commented-reviews-by=0"
- "#changes-requested-reviews-by=0"
- "#review-requested=0"
actions:
request_reviews:
teams:
- "@solana-labs/community-pr-subscribers"
- name: automatic merge (squash) on CI success
conditions:
- and:
- status-success=buildkite/solana
- status-success=ci-gate
- label=automerge
- label!=no-automerge
- or:
# only require docs checks if docs files changed
- -files~=^docs/
- status-success=build & deploy docs
- or:
# only require explorer checks if explorer files changed
- status-success=check-explorer
- -files~=^explorer/
- or:
- and:
- status-success=all-web3-checks
- status-success=web3-commit-lint
# only require web3 checks if web3.js files changed
- -files~=^web3.js/
actions:
merge:
method: squash
- name: remove automerge label on CI failure
conditions:
- label=automerge
- "#status-failure!=0"
actions:
label:
remove:
- automerge
comment:
message: automerge label removed due to a CI failure
- name: remove outdated reviews
conditions:
- base=master
actions:
dismiss_reviews:
changes_requested: true
- name: v1.13 feature-gate backport
conditions:
- label=v1.13
- label=feature-gate
actions:
backport:
assignees: &BackportAssignee
- "{{ merged_by|replace('mergify[bot]', label|select('equalto', 'community')|first|default(author)|replace('community', '@solana-labs/community-pr-s
ubscribers')) }}"
ignore_conflicts: true
labels:
- feature-gate
branches:
- v1.13
- name: v1.13 non-feature-gate backport
conditions:
- label=v1.13
- label!=feature-gate
actions:
backport:
assignees: *BackportAssignee
ignore_conflicts: true
branches:
- v1.13
- name: v1.14 feature-gate backport
conditions:
- label=v1.14
- label=feature-gate
actions:
backport:
assignees: *BackportAssignee
ignore_conflicts: true
labels:
- feature-gate
branches:
- v1.14
- name: v1.14 non-feature-gate backport
conditions:
- label=v1.14
- label!=feature-gate
actions:
backport:
assignees: *BackportAssignee
ignore_conflicts: true
branches:
- v1.14
commands_restrictions:
# The author of copied PRs is the Mergify user.
# Restrict `copy` access to Core Contributors
copy:
conditions:
- author=@core-contributors