What's new in Mergify, 2020Q2

What's new in Mergify, 2020Q2

Julien Danjou

Three more months have passed, and it's now time for us to share what we built and released over that time frame.

Ready? Go!

šŸ“¦ Batching!

That might not sound that exciting, but trust us ā€” it is. Mehdi wrote about it a few days ago so that I won't dig into the technical details here.

We improved our engine, and it now processes events in batch. What that means for you is that you'll no longer see Mergify being stuck for several minutes because it ran out its API request quota.

šŸ“„ Improved Commit Message

The merge action received a new option to control for its commit message: you can now set commit_message: title+body in your merge options.

This will set use the pull request title as the merge title and the pull request body as the merge message.

(This only works for merge and squash methods obviously.)

šŸš„ Smart Queue

For our Pro Plan users, we introduced smart queueing for the merge action. This allows you to prioritize your pull request in the merge queue, allowing you to merge some pull requests faster than others. Here's an example:

pull_request_rules:
  - name: automatic merge of šŸš‘ hotfix (high priority)
    conditions:
      - status-success=Travis CI - Pull Request
      - "#approved-reviews-by>=2"
      - label=šŸš‘ hotfix
    actions:
      merge:
        method: merge
        strict: smart
        priority: high
  - name: automatic merge of bot šŸ¤– (low priority)
    conditions:
      - author~=^dependabot(|-preview)\[bot\]$
      - status-success=Travis CI - Pull Request
    actions:
      merge:
        method: merge
        strict: smart
        priority: low
  - name: automatic merge for master when reviewed and CI passes
    conditions:
      - status-success=Travis CI - Pull Request
      - "#approved-reviews-by>=2"
    actions:
      merge:
        method: merge
        strict: smart
        priority: medium

As soon as the pull request has been approved by two contributors, the pull request will be added to the merge queue. Within the merge queue, the pull requests with the label šŸš‘ hotfix will be merged first. The pull requests from dependabot will always be merged last.

šŸ“‘ Template

You can now use pull request attributes in your configuration and commit messages.

For example, this allows you to notify the pull request author in a comment action:

pull_request_rules:
  - name: notify author on conflict
    conditions:
      - conflict
    action:
      comment:
        message: Could fix the conflict @{{author}}?

This can also be used in commit messages if you write your commit message in the pull request body:

## Commit Message

{{title}}

This pull request implements magnificient features, and I would like to
talk about them. This has been written by {{author}} and has been reviewed
by:

{% for user in approved_reviews_by %}
- {{user}}
{% endfor %}

The templating language used is Jinja2.

šŸ“œ Draft Attribute

You can now match pull request drafts by using the draft attribute.

Ok ā€” not the most exciting feature of this quarter, but still worth mentioning.

šŸ’– Sponsorship

You can now sponsor us through the GitHub Sponsor platform! While we're providing our service for free to thousands of open source projects, it seemed fair to allow users to give us back.

Our GitHub sponsor page

If you want to get some fancy Mergify stickers, here's your chance: we'll send stickers to our first ten sponsors.

āœļø New Blog

We started this new blog. Ok, it's not that different from the old one, except that you can now subscribe to it. Be the first to know when we release our best new fancy features by clicking on Subscribe!

Our new marvelous blog

šŸš‘ Health Metrics

Our status page now publishes some health metrics which should give you more transparency on our service. For example, you can see the average processing latency of our engine and its service level objective.

Some of our health metrics

That's it for this quarter.

Don't forget to subscribe to our blog to get new updates!