Mergify Changelog 2021Q3

Time flies, and this is the last update before we close the 2021 year. That's exciting!

This quarter was no exception to the rule, and Mergify continued to grow in its number of users, repositories, and automated pull requests. We're thrilled to see more and more users leveraging our engine to achieve optimized workflow.

We hope that the novelties brought to you during this last quarter will help you do more of this. We're happy to get your feedback!

πŸ‘‹ Strict Merge Mode Deprecation

We have deprecated the strict mode from the merge action. It is now superseded by the queue action which offers way more features.

You can read our announcement about this to learn how to migrate.

Strict Mode Deprecation
When Mergify started to automate pull request merges, users expressed rapidly the need for having a way to keep their pull requests updated. We soon introduced the strict mode for the merge action, offering pull request merge serialization. This was our first, very basic, merge queue. Later, Mergify…

🟒 New Permissions

We've requested new permissions to improve our compatibility with GitHub:

  1. Read-only access to branch settings is necessary to introspect branch protection settings. Those settings are now automatically injected in your pull requests rules and correctly reported in the Mergify summary.
  2. Write access for workflow. This allows Mergify to automatically merge pull requests which modify the .github/workflow files.

πŸ™ Squash Action

This quarter, we introduced a new action: squash. Squash allows you to squash all the commits in the pull request. When doing so, this action offers three methods to build the commit message of the resulting commit:

  • Use the commit message from the first commit. That mimicks what a fixup commit Β git rebase would do;
  • Use GitHub default squash format, which concatenates every commit message;
  • Use the title and body of the pull request.

This action is available as a command too.

πŸ”„ Update method in queue

The queue action now supports the rebase method. This was the last missing item to make this new action 100% compatible with the deprecated strict merge mode.

Mergify can now rebase your pull requests before testing their mergeability.

πŸ“₯ Batch Queue

The batch queue is the most significant feature for this quarter for sure. The merge queue now allows to batch pull requests when testing them for mergeability. This is a good trade-off if you want to use a merge queue while keeping your CI cost low.

You can also combine this feature with speculative checks to make your merge even faster.

βœ… Disabling In-place Checks

When using speculative checks, Mergify will update the first pull request in the queue. By default, Mergify will do an in-place update, meaning it will update the pull request itself by using the update or rebase method. The other pull requests in the queue will be tested with draft pull requests combining multiple pull requests.

A new option allow_inplace_speculative_checks now allows you to configure whether Mergify can use the pull request itself to test its mergeability or if it needs to create a draft pull request β€” even for the first pull request in the queue.

🌎 Timezone support

The time-based conditions now support timezones. This is a significant improvement, especially for timezones using daylight saving time. This is now taken into account, and you can make sure your pull requests are merged right in time in the morning β€” once your coffee is poured.

If you missed it, we published a long explanation of how our time-based conditions work. Read it to learn more about Mergify engine internals!

Behind the scene of time-based conditions
Last month, we announced a new set of conditions for Mergify rules based on time. You can now use a time and date and compare pull request attributes to dates and times. We had the idea for this feature since the beginning of Mergify, but we delayed it for a

πŸ“¦ Large Repositories for Everyone

We have lifted the repository size limitation for rebase, copy and backport action. As we've made considerable performance improvements to our engine, it seemed fair to remove this limitation.

Repository larger than 512 MB can now use those actions.

πŸ’§ New Stream System

We spent an enormous effort this quarter to scale up our services. Part of this is an extensive redesign on how we handle the hundreds of thousands of GitHub events we receive every day. That means Mergify is now more reactive in handling your pull requests. You can read detail on this in the blog post below.

Handling 780k GitHub events per day
A year ago, we wrote about our workload issues and how we were handling 300k GitHub events per day. Our main challenge was avoiding GitHub rate limit and quota system while delivering service with low latency and high throughput. Earlier this year we noticed more and more issues handling our

That's all for this quarter. We hope you'll make great use of those new features in your projects. Don't hesitate to reach out to our team if you need any help!