MergeQueue - April updates
Merge config yaml support, slash commands, fast forwarding, stacked PRs and more
Highlights
🚀 Merge rules YAML configuration — MergeQueue configuration as code
🚀 Slash commands — tell MergeQueue to take specific actions on your pull requests
🚀 Fast forwarding [opt-in beta] — maintain a linear history when using parallel mode.
🚀 Stacked PRs [opt-in beta] — create a sequence of dependent pull requests to make code review easier
👀 Status page — monitor MergeQueue’s system health and subscribe to outage and maintenance window updates
👀 GitHub permissions change — as we introduced new features, we now need a few more permission on your repositories (see below for details)
New features
YAML configuration
You can now update your merge rules configuration via a YAML input in the MergeQueue app (in addition to checking a config file into your GitHub repo)! You can validate and update the config from the Merge Rules page.
Check out the documentation for more details! In the future, our more advanced features will only be available via configuration file.
Parallel mode: separate checks for original and draft PRs
Teams can now select separate status checks for original PRs and draft PRs. Go to the Status Checks page to set this up. Note that if the Advanced Settings
toggle is off, then we will use the same status checks for both original PRs and draft PRs. This can minimize CI run times if you do not want exhaustive checks for draft PRs.
Slash commands
We’ve introduced two “slash commands” that you can use to operate on your pull requests. Commands start with /aviator
(hey! you got a sneak peak of our imminent re-brand! 👀🤫) and can appear anywhere within an issue comment as long as they’re on their own line.
/aviator refresh
— see the current status of your PR as seen my MergeQueue (and trigger a re-process in case events were lost from GitHub)/aviator sync
— update your PR with the latest changes from the base branch (e.g., try to merge or rebase changes frommain
)
👉 Have ideas for other useful slash commands? Please reach out! We’re always available at support@mergequeue.com.
Fast-forwarding [opt-in beta]
Fast forward works in parallel mode and enables teams to manage a linear history while validating the test results on specific commit SHAs. Fast-forwarding is still in beta, read our fast-forwarding documentation and email us to activate fast-forwarding on your account.
Stacked PRs [opt-in beta]
Stacked PRs let you decompose a big change into multiple separate PRs which can be reviewed independently (allowing you to have multiple PRs open before the first one lands in your main branch!).
For example, you could split a feature into three separate dependent PRs: API schema definitions, backend implementation, and frontend implementation.
If you’re interested in beta-testing this feature, please reach out via Slack or send an email to support@mergequeue.com!
Bug fixes and improvements
Support for branches with special characters (eg.
branch#1
).Support for repositories that don’t require PR approvals.
Better clean up of dangling branches created by MergeQueue bot.
Improved handling of GitHub timeouts and API errors.
Better handling of PRs and MergeQueue-created draft PRs that have been manually closed (PRs will no longer get stuck in the queue).
Improved repository connection workflow for GitHub repositories that require admin approval.
Automatic dequeuing of PRs when a new commit is added to avoid merging untested commits (only relevant in parallel mode).
Upgraded cloud infrastructure to support fixed IP addresses for outbound webhooks (please reach out if you need the list of IP addresses to whitelist on your server).
New GitHub permission requirements
We’re now requesting two new permissions:
issues
— we use this permission to be able to listen for pull request comments (this permission is required in addition topull_requests
due to limitations in the GitHub API)administration
(read-only) — we use this permission to read your branch protection rules (this helps us provide better error messages and debug information whenever we detect incompatible configuration between GitHub and MergeQueue)
For a full list of the permissions we request, as well as a description of what we do with those permissions, see our MergeQueue GitHub app permissions explainer.