Mergify Changelog 2021Q4
The last quarter of the year is now wrapped up, and it's time to wish everyone a happy new year.
We want to start this changelog edition by looking back to a year ago. Our number of users doubled over the year, which came with its pack of challenges. We wrote a few months ago about how we grew close to 1M events per day from GitHub. Our team also increased — from 3 to 8 people — and we are still hiring.
We are proud of what we shipped overall this year. The number of software engineering teams relying on Mergify every day keeps increasing. We are now part of many workflows and daily routines. Most organizations using Mergify would lose a lot of productivity without the functionalities Mergify provides.
We're looking forward to this new year. Our roadmap is booked with new and exciting features that we are eager to announce.
Now, let's talk about what we did at the end of 2021.
🆕 New Condition Attributes
This quarter, we've added many new pull request attributes that can be used in conditions.
review-threads-resolved
andreview-threads-unresolved
: the list of bodies associated to review threads that are marked asresolved
orunresolved
by GitHub. Beneficial to merge pull requests that have only all of their review comments closed by using#review-threads-unresolved=0
.commits-behind
: the list of commits between the head of the base branch and the base of the pull request. This is useful to detect pull requests that are not up-to-date by using#commits-behind>0
.commits
: the list of commit messages of the pull request. It can be helpful to write conditions based on the number of commits in a pull request using#commits
.commits-unverified
: the list of commit messages that are marked as unverified by GitHub. This is useful to check if all the commits in a pull request are signed.queue-position
: the position of the pull request in its queue if queued.queue-merge-started-at
: the time the pull request mergeability checks have started at.
🔌 API
We've announced our new API. For now, it only allows retrieving the state of your merge queues. We have more features planned for it in the future.
✍️ Commit Message Template
The queue
and merge
actions now offer a commit_message_template
option, which allows defining a template for merging pull requests. This means you can now have a single template used on the whole repository.
- name: merge when ready
conditions:
- "#approved-reviews-by>=2"
- check-success=myci
actions:
merge:
commit_message_template: |
{{title}}
{{body}}
{% for user in approved_reviews_by %}
Approved-By: {{user}}
{% endfor %}
🐛 New Queue Options
The queue
action offers three new options:
checks_timeout
allows specifying the number of seconds Mergify should wait before giving up on merging the pull request. This makes sure that if a problem with the CI blocks a queue, Mergify gives up and schedules the subsequent pull request for merge. There is no default set.allow_checks_interruption
, enabled by default, allows Mergify to preempt a pull request which is currently being merged by a pull request with a higher priority. This can lead to canceling the running checks.require_branch_protection
, enabled by default, indicates whether pull request should match GitHub branch protection before queuing.
❌ Dismissing Reviews
The dismiss_reviews
action now has a when
option, which allows you always to dismiss reviews. The default behavior remains to only dismiss reviews when a synchronize event occurs.
👋 Bye Bye Strict Mode
With the advent of the queue
action over the last months, we announced the retirement of the strict
mode for the merge
action. After a brownout day, this feature has been entirely removed.
📜 Convert a pull request to draft
You can now convert a pull request to draft and vice-versa. That's it. 🤷
🚀 Startup Program
If you are — or know — a startup, we now have a Startup Program in place that offers up to $21,000 of Mergify subscription fees.
That's it for this year. Stay tuned for the next quarter update, the first of 2022!