| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- # https://doc.mergify.io/
- pull_request_rules:
- - name: label changes from community
- conditions:
- - author≠@anza
- - 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≠@anza
- - 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:
- - "@anza-xyz/community-pr-subscribers"
- - name: label changes from monorepo-triage
- conditions:
- - author≠@anza
- - 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/agave
- - 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:
- - -files~=(\.rs|Cargo\.toml|Cargo\.lock|\.github/scripts/cargo-clippy-before-script\.sh|\.github/workflows/cargo\.yml)$
- - or:
- - check-success=clippy-nightly (macos-latest)
- - check-success=clippy-nightly (macos-latest-large)
- - or:
- - -files~=(\.rs|Cargo\.toml|Cargo\.lock|cargo-build-sbf|cargo-test-sbf|ci/downstream-projects/run-spl\.sh|\.github/workflows/downstream-project-spl\.yml)$
- - and:
- - status-success=check (associated-token-account)
- - status-success=check (feature-proposal)
- - status-success=check (instruction-padding)
- - status-success=check (memo)
- - status-success=check (record)
- - status-success=check (single-pool)
- - status-success=check (slashing)
- - status-success=check (stake-pool)
- - status-success=check (token-2022)
- - status-success=test_cli (single-pool)
- - status-success=test_cli (token-2022)
- - status-success=cargo-test-sbf (associated-token-account)
- - status-success=cargo-test-sbf (feature-proposal)
- - status-success=cargo-test-sbf (instruction-padding)
- - status-success=cargo-test-sbf (memo)
- - status-success=cargo-test-sbf (record)
- - status-success=cargo-test-sbf (single-pool)
- - status-success=cargo-test-sbf (slashing)
- - status-success=cargo-test-sbf (stake-pool)
- - status-success=cargo-test-sbf (token-2022)
- - or:
- - -files~=(Cargo\.toml|.github/workflows/crate-check\.yml|ci/check-crates\.sh)$
- - check-success=crate check
- 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: v2.2 feature-gate backport
- conditions:
- - label=v2.2
- - label=feature-gate
- actions:
- backport:
- assignees: &BackportAssignee
- - "{{ merged_by|replace('mergify[bot]', label|select('equalto', 'community')|first|default(author)|replace('community', '@anza-xyz/community-pr-subscribers')) }}"
- title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
- ignore_conflicts: true
- labels:
- - feature-gate
- branches:
- - v2.2
- - name: v2.2 non-feature-gate backport
- conditions:
- - label=v2.2
- - label!=feature-gate
- actions:
- backport:
- assignees: *BackportAssignee
- title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
- ignore_conflicts: true
- branches:
- - v2.2
- - name: v2.2 backport warning comment
- conditions:
- - label=v2.2
- actions:
- comment:
- message: >
- Backports to the stable branch are to be avoided unless absolutely
- necessary for fixing bugs, security issues, and perf regressions.
- Changes intended for backport should be structured such that a
- minimum effective diff can be committed separately from any
- refactoring, plumbing, cleanup, etc that are not strictly
- necessary to achieve the goal. Any of the latter should go only
- into master and ride the normal stabilization schedule.
- - name: v2.3 feature-gate backport
- conditions:
- - label=v2.3
- - label=feature-gate
- actions:
- backport:
- assignees: *BackportAssignee
- title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
- ignore_conflicts: true
- labels:
- - feature-gate
- branches:
- - v2.3
- - name: v2.3 non-feature-gate backport
- conditions:
- - label=v2.3
- - label!=feature-gate
- actions:
- backport:
- assignees: *BackportAssignee
- title: "{{ destination_branch }}: {{ title }} (backport of #{{ number }})"
- ignore_conflicts: true
- branches:
- - v2.3
- - name: v2.3 backport warning comment
- conditions:
- - label=v2.3
- actions:
- comment:
- message: >
- Backports to the beta branch are to be avoided unless absolutely
- necessary for fixing bugs, security issues, and perf regressions.
- Changes intended for backport should be structured such that a
- minimum effective diff can be committed separately from any
- refactoring, plumbing, cleanup, etc that are not strictly
- necessary to achieve the goal. Any of the latter should go only
- into master and ride the normal stabilization schedule. Exceptions
- include CI/metrics changes, CLI improvements and documentation
- updates on a case by case basis.
- - name: Reminder to update RPC clients for changes in `rpc/`
- conditions:
- - or:
- - files~=^rpc/src/rpc\.rs$
- - files~=^rpc/src/rpc_pubsub\.rs$
- - files~=^rpc-client-api/src/.*\.rs$
- actions:
- comment:
- message: |
- If this PR represents a change to the public RPC API:
- 1. Make sure it includes a complementary update to `rpc-client/` ([example](https://github.com/solana-labs/solana/pull/29558/files))
- 2. Open a follow-up PR to update the JavaScript client `@solana/kit` ([example](https://github.com/solana-labs/solana-web3.js/pull/2868/files))
- Thank you for keeping the RPC clients in sync with the server API @{{author}}.
- - name: Reminder to add Firedancer team to changes in `programs/`
- conditions:
- - or:
- - files~=^programs/address-lookup-table/src/.*\.rs$
- - files~=^programs/bpf_loader/src/.*\.rs$
- - files~=^programs/compute_budget/src/.*\.rs$
- - files~=^programs/config/src/.*\.rs$
- - files~=^programs/loader-v4/src/.*\.rs$
- - files~=^programs/stake/src/.*\.rs$
- - files~=^programs/system/src/.*\.rs$
- - files~=^programs/vote/src/.*\.rs$
- - files~=^programs/zk-elgamal-proof/src/.*\.rs$
- actions:
- comment:
- message: |
- The Firedancer team maintains a line-for-line reimplementation of the
- native programs, and until native programs are moved to BPF, those
- implementations must exactly match their Agave counterparts.
- If this PR represents a change to a native program implementation (not
- tests), please include a reviewer from the Firedancer team. And please
- keep refactors to a minimum.
- - name: Notify about future move of zk-keygen, zk-sdk, and zk-token-sdk
- conditions:
- - or:
- - files~=^zk-keygen/
- - files~=^zk-sdk/
- - files~=^zk-token-sdk/
- actions:
- comment:
- message: |
- For your information, the `zk-keygen` and `zk-sdk` directories are
- scheduled to be relocated to `solana-program/zk-elgamal-proof` in a
- separate repository. Additionally, the `zk-token-sdk` directory will
- be removed. Please take these upcoming changes into account when
- making modifications.
- commands_restrictions:
- # The author of copied PRs is the Mergify user.
- # Restrict `copy` access to Core Contributors
- copy:
- conditions:
- - author=@anza
|