Before starting, make sure the merge queue is set up and configured.
Add a pull request to the merge queue
You can add a pull request to the Graphite merge queue from the Graphite app or by adding a label to a PR on Graphite or GitHub.
Enqueue through the Graphite app
Once the Graphite merge queue is enabled on a repository, you'll still see the option to merge a pull request, but the confirmation modal will show an option to queue the PR rather than to merge it immediately. There are a few minor differences between the merge modal and the queue modal:
You cannot override the merge strategy from the queue modal as you can from the merge modal. Merge strategy for the queue is set at the repository-level through your repository settings
We don't support commit message/title edits from the queue modal as we do in the merge modal. For PRs merged using the squash and merge strategy, the PR title and PR description will be used for the commit message/title.
When queuing individual PRs (not a stack), you have the option to queue the PR as a hot-fix. When you queue a PR as a hot-fix, your PR will automatically jump to the front of the queue. Note that it will still wait to rebase and rerun CI, but will merge next in line. Hot-fixes will be marked in the merge activity page with a small flame icon.
Enqueue via label
Make sure you've configured your repository to enqueue PRs with a GitHub label.
After you've created/configured a label which you want to use to indicate that a PR should be added to the queue, simply adding the label to any PR will enqueue the PR. There are a few things to note:
If the label is added to a PR that isn't mergeable, it will toggle the PR's merge when ready property on and will be enqueued once mergeable
If the label is removed from a PR, it will be removed from the queue (or merge when ready will be toggled off)
If a PR is removed from the queue for any reason (failing checks, merge conflicts), the label will be removed
If the label is added to a PR that is part of a stack, the label will be automatically added to all downstack PRs as well.
If the label is removed from a PR that is part of a stack, the label will be automatically removed from all upstack PRs as well.
Note
A Graphite account is required for using merge labels. If we detect a user without a Graphite account applies a merge label, it will be removed and a note will be added to the PR about this requirement.
If a user successfully merges with a label on GitHub into the Graphite merge queue, they become a billable active user per our pricing plans.
Merge activity page
The merge activity page shows merge history for a given repository. You can select which repository you're viewing with the repository selector in the top right of the page.
PR details
Queued PRs display directly above the trunk
's merge history where you can see the PR's position in the queue, size, and estimated time to merge. Under the ...
menu, you also have the option to remove PRs (including the currently merging PR) from the queue.
Timeline
The timeline on the right side of the page shows the queue activity, which includes merges, hot-fixes, removals, and failures.
Pause the queue
In case you need to do so, you can pause the queue by clicking the ...
on the PR header and selecting pause queue
. When the queue is paused, PRs can still be added to the queue but they will not be merged.