solana/.mergify.yml

132 lines
3.9 KiB
YAML

# https://doc.mergify.io/
pull_request_rules:
- name: label changes from community
conditions:
- author≠@core-contributors
- author≠@monorepo-maintainers
- author≠@monorepo-write
- author≠@monorepo-triage
- author≠mergify[bot]
- author≠dependabot[bot]
- author≠github-actions[bot]
actions:
label:
add:
- community
- need:merge-assist
- name: request review for community changes
conditions:
- author≠@core-contributors
- author≠@monorepo-maintainers
- author≠@monorepo-write
- author≠@monorepo-triage
- 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: label changes from monorepo-triage
conditions:
- author≠@core-contributors
- author≠mergify[bot]
- author≠dependabot[bot]
- author≠github-actions[bot]
- author≠@monorepo-maintainers
- author≠@monorepo-write
- author=@monorepo-triage
actions:
label:
add:
- need:merge-assist
- 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
actions:
merge:
method: squash
- name: remove automerge label on CI failure
conditions:
- and:
- label=automerge
- "#status-failure!=0"
- -merged
actions:
label:
remove:
- automerge
comment:
message: automerge label removed due to a CI failure
- name: v1.14 feature-gate backport
conditions:
- label=v1.14
- 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-subscribers')) }}"
title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
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
title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
ignore_conflicts: true
branches:
- v1.14
- name: v1.16 feature-gate backport
conditions:
- label=v1.16
- label=feature-gate
actions:
backport:
assignees: *BackportAssignee
title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
ignore_conflicts: true
labels:
- feature-gate
branches:
- v1.16
- name: v1.16 non-feature-gate backport
conditions:
- label=v1.16
- label!=feature-gate
actions:
backport:
assignees: *BackportAssignee
title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
ignore_conflicts: true
branches:
- v1.16
commands_restrictions:
# The author of copied PRs is the Mergify user.
# Restrict `copy` access to Core Contributors
copy:
conditions:
- author=@core-contributors