Skip to content

ci: set up Mergify merge queue#17

Merged
kozlek merged 1 commit into
mainfrom
setup-mergify-merge-queue
Jun 15, 2026
Merged

ci: set up Mergify merge queue#17
kozlek merged 1 commit into
mainfrom
setup-mergify-merge-queue

Conversation

@kozlek

@kozlek kozlek commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Sets up the Mergify merge queue (MRGFY-7564). Two-queue flow:

  • Human PRsdefault queue, gated by 2 approvals + CI green (all-greens).
  • Bottle publish PRs (opened post-merge by publish.yml) → bottle queue, auto-merged with no approval and no CI — they only add the precompiled bottle do block to Formula/mergify-cli.rb.
  • Dependabot github-actions bumps → automated updates queue, auto-merge after CI.

Changes

  • .mergify.yml (new) — extends: .github; three queues + merge protections that exempt the bottle PR from CI/review via if: -head ~= ^bottle/.
  • publish.yml — opens a bottle/<version> PR instead of pushing the bottle commit directly to main, plus a loop-breaker so the bottle PR's own merge doesn't re-trigger publishing.
  • tests.yml — adds an all-greens aggregate check (Mergifyio/gha-mergify-ci wait-jobs) so protections can require one stable check name.
  • dependabot.ymlchore commit prefix so bump titles satisfy the inherited conventional-commit protection.

Follow-up (NOT in this PR)

After merge, the main ruleset (17310728) is tightened separately to require a pull request (0 approvals — enforced by Mergify now) with the Mergify App as bypass actor.

Test Plan

  • mergify config validate -f .mergify.yml → valid
  • actionlint on both workflows → clean
  • ruby -ryaml on dependabot.yml → valid
  • After merge: a human PR requires 2 approvals + CI before Mergify merges it
  • After merge: a formula change triggers publish.yml → opens a bottle/* PR that the bottle queue auto-merges with no review; publish.yml re-trigger no-ops (loop-breaker)
  • Dependabot PR (title chore: bump …) auto-merges after CI with no approval

🤖 Generated with Claude Code

@kozlek kozlek force-pushed the setup-mergify-merge-queue branch 2 times, most recently from 998558b to 136bcbd Compare June 15, 2026 18:39
Two-queue flow: human PRs use the default queue (2 approvals + CI green);
bottle publish PRs and dependabot bumps auto-merge without review.

- .mergify.yml: extends .github; bottle / automated updates / default queues,
  with merge protections that exempt the bottle PR from CI and review.
- publish.yml: open a bottle/<version> PR instead of pushing to main, with a
  bottle/* loop-breaker so the bottle PR's own merge doesn't re-trigger.
- tests.yml: add an all-greens aggregate check for the merge protections.
- dependabot.yml: chore prefix so bump titles pass the conventional-commit check.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change-Id: I69136e6928bb079283bc6c30ed07c57cab3b26d0
@kozlek kozlek force-pushed the setup-mergify-merge-queue branch from 136bcbd to 209b8e8 Compare June 15, 2026 19:26
@kozlek kozlek merged commit 592297f into main Jun 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant