Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 23 additions & 33 deletions .mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,26 @@ queue_rules:
merge_method: squash
merge_conditions:
- check-success = quality
- "check-success = msrv (stable)"
- "check-success = msrv (stable minus 1 releases)"
- "check-success = msrv (stable minus 2 releases)"
- "check-success = msrv (stable minus 3 releases)"
- "check-success = msrv (stable minus 4 releases)"
- check-success = msrv (stable)
- check-success = msrv (stable minus 1 releases)
- check-success = msrv (stable minus 2 releases)
- check-success = msrv (stable minus 3 releases)
- check-success = msrv (stable minus 4 releases)
- check-success = test
- "check-success = test-cross-platform (ubuntu-latest, Linux)"
- "check-success = test-cross-platform (macos-latest, macOS)"
- "check-success = test-cross-platform (windows-latest, Windows)"
- check-success = test-cross-platform (ubuntu-latest, Linux)
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage

pull_request_rules:
# Tier 1: Maintainer PRs -- queue when maintainer adds 'lgtm' label
- name: Queue maintainer PRs with lgtm label
conditions:
- base = main
- "author=@maintainers"
- author=@maintainers
- label = lgtm
- label != do-not-merge
actions:
queue:
name: default

# Tier 2: Trusted bot PRs -- auto-queue when checks pass
- name: Auto-approve and queue dependabot PRs
conditions:
- base = main
Expand All @@ -39,56 +35,50 @@ pull_request_rules:
message: Automatically approved by Mergify
queue:
name: default

# Tier 3: All other PRs (external contributors, copilot) -- require maintainer approval
- name: Queue external PRs when approved by maintainer
conditions:
- base = main
- "-author=@maintainers"
- -author=@maintainers
- author != dependabot[bot]
- "approved-reviews-by=@maintainers"
- approved-reviews-by=@maintainers
- label != do-not-merge
actions:
queue:
name: default

- name: Keep PRs up to date with main
conditions:
- base = main
- -conflict
- -draft
- -author = dependabot[bot]
- label != do-not-merge
actions:
update: {}

merge_protections:
- name: Enforce conventional commit
description: Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
if:
- base = main
success_conditions:
- "title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\\(.+\\))?:"

- "title ~=
^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\\(.+\
\\))?:"
Comment on lines +62 to +64
- name: CI must pass
description: >-
All CI checks must pass. This protection prevents manual merges
description: All CI checks must pass. This protection prevents manual merges
that bypass the merge queue.
if:
- base = main
success_conditions:
- check-success = quality
- "check-success = msrv (stable)"
- "check-success = msrv (stable minus 1 releases)"
- "check-success = msrv (stable minus 2 releases)"
- "check-success = msrv (stable minus 3 releases)"
- "check-success = msrv (stable minus 4 releases)"
- check-success = msrv (stable)
- check-success = msrv (stable minus 1 releases)
- check-success = msrv (stable minus 2 releases)
- check-success = msrv (stable minus 3 releases)
- check-success = msrv (stable minus 4 releases)
- check-success = test
- "check-success = test-cross-platform (ubuntu-latest, Linux)"
- "check-success = test-cross-platform (macos-latest, macOS)"
- "check-success = test-cross-platform (windows-latest, Windows)"
- check-success = test-cross-platform (ubuntu-latest, Linux)
- check-success = test-cross-platform (macos-latest, macOS)
- check-success = test-cross-platform (windows-latest, Windows)
- check-success = coverage

- name: Do not merge outdated PRs
description: Make sure PRs are within 10 commits of the base branch before merging
if:
Expand Down
Loading