163 lines
4.6 KiB
YAML
163 lines
4.6 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
|
|
- author≠@dont-squash-my-commits
|
|
- or:
|
|
# only require docs checks if docs files changed
|
|
- status-success=docs-build
|
|
- -files~=^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
|
|
# Join the dont-squash-my-commits group if you won't like your commits squashed
|
|
- name: automatic merge (rebase) on CI success
|
|
conditions:
|
|
- and:
|
|
- status-success=buildkite/solana
|
|
- status-success=ci-gate
|
|
- label=automerge
|
|
- label!=no-automerge
|
|
- author=@dont-squash-my-commits
|
|
- or:
|
|
# only require docs checks if docs files changed
|
|
- status-success=docs-build
|
|
- -files~=^docs/
|
|
- or:
|
|
# only require explorer checks if explorer files changed
|
|
- status-success=check-explorer
|
|
- -files~=^explorer/
|
|
- or:
|
|
# only require web3 checks if web3.js files changed
|
|
- status-success=all-web3-checks
|
|
- -files~=^web3.js/
|
|
actions:
|
|
merge:
|
|
method: rebase
|
|
- 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: set automerge label on mergify backport PRs
|
|
conditions:
|
|
- author=mergify[bot]
|
|
- head~=^mergify/bp/
|
|
- "#status-failure=0"
|
|
- "-merged"
|
|
- label!=no-automerge
|
|
actions:
|
|
label:
|
|
add:
|
|
- automerge
|
|
- name: v1.10 feature-gate backport
|
|
conditions:
|
|
- label=v1.10
|
|
- 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.10
|
|
- name: v1.10 non-feature-gate backport
|
|
conditions:
|
|
- label=v1.10
|
|
- label!=feature-gate
|
|
actions:
|
|
backport:
|
|
assignees: *BackportAssignee
|
|
ignore_conflicts: true
|
|
branches:
|
|
- v1.10
|
|
- name: v1.11 feature-gate backport
|
|
conditions:
|
|
- label=v1.11
|
|
- label=feature-gate
|
|
actions:
|
|
backport:
|
|
assignees: *BackportAssignee
|
|
ignore_conflicts: true
|
|
labels:
|
|
- feature-gate
|
|
branches:
|
|
- v1.11
|
|
- name: v1.11 non-feature-gate backport
|
|
conditions:
|
|
- label=v1.11
|
|
- label!=feature-gate
|
|
actions:
|
|
backport:
|
|
assignees: *BackportAssignee
|
|
ignore_conflicts: true
|
|
branches:
|
|
- v1.11
|
|
|
|
commands_restrictions:
|
|
# The author of copied PRs is the Mergify user.
|
|
# Restrict `copy` access to Core Contributors
|
|
copy:
|
|
conditions:
|
|
- author=@core-contributors
|