jeduden/merge-queue

Bors-style merge queue with batching and bisection. Merges PRs into the batch branch locally via `git merge` so custom merge drivers (.gitattributes + merge.<name>.driver) take effect. The action configures git identity and rewrites `origin` to use the supplied token, so the only workflow-side step required before it is `actions/checkout` with `fetch-depth: 0`.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
tokenGitHub token with contents:write, pull-requests:write, actions:write, and issues:write permissionsyes
ci_workflowWorkflow file in this repository to run against the batch branch; must support workflow_dispatch (e.g. .github/workflows/ci.yml)yes
batch_sizeMax PRs per batch5
queue_labelLabel that enqueues a PRqueue
ci_wait_minutesHow long (in minutes) to wait for the dispatched CI run on a batch branch to complete before treating the wait as failed and requeueing the batch. Size this above your slowest CI run: a too-small value makes every batch time out and charges the requeue cap until the PRs are marked failed without CI ever failing. Must be a positive integer; invalid values fall back to the default with a warning.60
max_requeuesMax times a single PR is requeued before the queue gives up and marks it failed. Bounds every retry path so a deterministic failure (e.g. a permission error or an always-failing check) cannot re-trigger the workflow forever. Must be a positive integer; zero, negative, or non-numeric values fall back to the default (with a warning in the run log).10
dry_runLog intent without mutatingfalse
batch_prsPR numbers to process explicitly. Accepts a JSON array of integers (e.g. "[187]" or "[181,187]") or a single integer string (e.g. "187"). When provided in normal (non-bisect) mode via workflow_dispatch, those PRs are fetched directly by number and processed without requiring them to have the queue label — useful as a fallback for conflicted PRs whose pull_request:labeled event did not trigger a workflow run. In bisect mode this field is set automatically by the action itself.""
bisectRun in bisect mode (set automatically via workflow_dispatch)false
git_user_emailEmail used for the merge commit author/committer. Set on the local repo via `git config user.email` before merging.merge-queue@users.noreply.github.com
git_user_nameName used for the merge commit author/committer. Set on the local repo via `git config user.name` before merging.merge-queue-bot

no outputs