diff --git a/.mergify.yml b/.mergify.yml index bdd69f71..94fac1c9 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -70,23 +70,46 @@ pull_request_rules: merge_protections: - name: CI must pass - description: >- - All CI checks must pass. This protection prevents manual merges - that bypass the merge queue. + description: All CI checks must pass or be legitimately skipped (path + filtering). Matrix job names differ between running and skipped states, so + the test-cross-platform rule uses an and/or pattern to handle both. if: - base = main success_conditions: - - check-success = quality - - check-success = test - - "check-success = test-cross-platform (ubuntu-latest, Linux)" - - "check-success = test-cross-platform (ubuntu-22.04, Linux)" - - "check-success = test-cross-platform (macos-latest, macOS)" - - "check-success = test-cross-platform (windows-latest, Windows)" - - check-success = coverage - + - or: + - check-success = quality + - check-skipped = quality + - or: + - check-success = test + - check-skipped = test + - or: + - and: + - check-success = test-cross-platform (ubuntu-latest, Linux) + - check-success = test-cross-platform (ubuntu-22.04, Linux) + - check-success = test-cross-platform (macos-latest, macOS) + - check-success = test-cross-platform (windows-latest, Windows) + - check-skipped = test-cross-platform + - or: + - check-success = coverage + - check-skipped = coverage - name: Do not merge outdated PRs description: Make sure PRs are within 10 commits of the base branch before merging if: - base = main success_conditions: - "#commits-behind <= 10" +priority_rules: + - name: Bot Generated + priority: low + conditions: + - and: + - author = dependabot[bot] + - base = main + allow_checks_interruption: true + - name: Bug Fixes + priority: high + conditions: + - and: + - "title ~= ^bug(\\\\(.*\\\\))?:" + - base = main + allow_checks_interruption: true