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 GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| token | GitHub token with contents:write, pull-requests:write, actions:write, and issues:write permissions | yes | — |
| ci_workflow | Workflow file in this repository to run against the batch branch; must support workflow_dispatch (e.g. .github/workflows/ci.yml) | yes | — |
| batch_size | Max PRs per batch | — | 5 |
| queue_label | Label that enqueues a PR | — | queue |
| ci_wait_minutes | How 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_requeues | Max 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_run | Log intent without mutating | — | false |
| batch_prs | PR 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. | — | "" |
| bisect | Run in bisect mode (set automatically via workflow_dispatch) | — | false |
| git_user_email | Email 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_name | Name used for the merge commit author/committer. Set on the local repo via `git config user.name` before merging. | — | merge-queue-bot |
Outputs
no outputs