Merge Queue

May 24, 2026 ยท View on GitHub

PRs merge via jeduden/merge-queue-action, not the GitHub merge button. Add the queue label after CI is green and reviews are resolved:

gh pr edit --add-label queue

How it works: the action collects all PRs labeled queue (oldest first), merges up to batch_size (5) into a temporary merge-queue/batch-* branch server-side, then dispatches the CI workflow against that branch. If CI passes, main fast-forwards to the batch head and the batch branch is deleted.

Label state machine: three labels track progression through the queue:

LabelMeaning
queuePR is waiting to be picked up
queue:activePR is in the current batch
queue:failedCI failed or merge conflict found

On failure the action adds queue:failed and posts a comment explaining the cause. Fix the issue, push, then replace the label to re-enter the queue:

gh pr edit --remove-label queue:failed
gh pr edit --add-label queue

Bisection: when a multi-PR batch fails, the action recursively bisects the batch until the failing PR is isolated. Single-PR failures are reported immediately.

Eligibility: only same-repo PRs targeting main. Fork PRs cannot enter the queue.

Manual dispatch: maintainers can trigger the queue workflow via workflow_dispatch. Pass PR numbers in batch_prs or enable bisect mode to debug a failing batch.

The PR fixup workflow covers getting a PR to merge-ready state. Use the /merge-queue skill to enqueue.