---
title: "Mergify vs GitHub Merge Queue"
description: "When a pull request fails in GitHub's merge queue, every run behind it starts over. Compare it with Mergify: batching with bisection, two-step CI, priorities, monorepo scopes, and flaky test quarantine."
url: https://mergify.com/compare/github-merge-queue
---

Mergify vs GitHub merge queue

# You turned on GitHub's merge queue.Now one red run restarts the whole line.

When a queued pull request fails, even on a flaky test, GitHub kicks it out and every run behind it starts over. Mergify tests pull requests in batches, finds the culprit when a batch fails, and keeps known flaky tests from ejecting anyone.

[Start a free 14-day trial](https://dashboard.mergify.com/)[See the comparison](#comparison)

Used by the platform teams that ship fast and keep CI green

"Two-step CI completely transformed how we handle long hardware tests. Instead of burning hours on repeated runs, we validate once and merge with confidence."

Rushin Shah, Sr. Manager DevInfra · Cerebras

"The merge queue is a huge value from Mergify: it keeps our main stable and allows us to merge quickly with confidence."

Minh Tran, Platform Engineer · Apex Fintech Solutions

"You get the benefits of Mergify immediately. There is no competitor doing stuff like this."

Florian Berchtold, Software Engineer · Luminar

"The merge queue is a time-saver! Contributors no longer have to carry the mental load of monitoring their PRs!"

Johan Lorenzo, Staff Release Engineer · Mozilla

"We transitioned from manual chaos to over 20 safe deploys per day. Mergify is becoming a critical part of our delivery function."

Chris Irving, Engineering Manager · Jane

"Our merge queue is like a safety net. Every PR that lands has been tested, approved, and verified under the exact same conditions."

Fabien Marty, Senior Staff Software Engineer · Botify

"With dozens of engineers and long-running CI jobs, Mergify turned what used to be a daily bottleneck into a background process. Our teams focus on hardware, not merge logistics."

Ben Holtzman, Senior Design Enablement Engineer · AheadComputing

"Before Mergify, we spent too much time manually coordinating merges. Now everything flows automatically."

Nicolas Beaussart-Hatchuel, Senior Staff Software Engineer · PayFit

"Mergify was the best fit. It saved a couple of hours per engineer per month and resolved our bottleneck with the merge queue."

Tomas Nekolny, Engineering Manager · Productboard

"The support on Slack is really good, reactive and transparent. We have other partners where problems feel less transparent. With Mergify, it's fluid."

Clément Danjou, VP Blockchain · Zama

## What GitHub does well, and where it stops

| Feature | GitHub | Mergify |
| --- | --- | --- |
| Tests each PR against the latest base and the PRs ahead of it | ✓ | ✓ |
| Several merge groups under test in parallel | ✓ | ✓ |
| Merges several PRs at once | ✓ | ✓ |
| Queue CI runs for 8 queued PRs | 8, one per PR | As few as 1, with batching |
| When a run fails | Failing PR removed, rest rebuilt | Batch split to find the culprit |
| Lighter checks on the PR, full suite in the queue | Same required checks for both | ✓ |
| Urgent PRs | Jump to top, in-flight PRs rebuild | Priority levels by label or rule |
| Monorepo scopes, parallel queues | – | ✓ |
| Retry a job that failed for a transient reason | – | CI Insights |
| Flaky tests quarantined so they stop ejecting PRs | – | Test Engine |
| Queue pause and scheduled freezes | – | ✓ |
| Queue analytics and event log | – | ✓ |
| Slack and Datadog integrations | – | ✓ |
| Price | Included with GitHub | Free for small teams, then per contributor |

[Get started](https://dashboard.mergify.com/)

Moved over from GitHub's merge queue

-   
-   
-   

> "Mergify gives us the control and visibility we never had with GitHub's queue. It's become our CI command center."

Ben Holtzman, Senior Design Enablement Engineer, [AheadComputing](https://mergify.com/customers/aheadcomputing)

## When GitHub's merge queue is enough

Be honest with yourself. If these describe your team, the built-in option works fine:

-   ✓ Small team (fewer than 10 engineers)
-   ✓ Simple CI pipeline (single workflow, under 15 minutes)
-   ✓ Low PR volume (fewer than 20 per day)
-   ✓ No monorepo complexity
-   ✓ No need for CI batching to reduce costs

## When you need Mergify

If any of these sound familiar, you've outgrown the built-in queue:

-   ✓ Team is growing (20+ engineers contributing daily)
-   ✓ CI is expensive and you need batching to reduce costs
-   ✓ Monorepo with multiple scopes and services
-   ✓ Hotfixes should automatically jump the queue based on labels or rules
-   ✓ Two-step CI: light checks on push, heavy checks in queue
-   ✓ Flaky tests are eating developer time
-   ✓ You need merge freezes and scheduling
-   ✓ CI runs exceed 30 minutes and reruns are costly

> Early on, as the team, tests, and CI complexity grew, it was quite clear that we needed an automated tool to resolve bottlenecks. Our team loves the way Mergify solved our growing pains.

Tomasz Biernacki

Quality Assurance Engineer at Pitch

## What changes when you switch

The table in pictures. Each panel is something you notice the first week, starting with what the queue sees.

### Live queue visibility

What's running, what's waiting, and why, at a glance.

#### GitHub Merge Queue

Add metrics endpointqueued

Fix billing edge casequeued

Bump depsrunning

Refactor schedulerqueued

PR list, no context

#### Mergify

See the queue in real time

### Queue analytics

Throughput, wait times, batch outcomes, CI failure rate, over time.

#### GitHub Merge Queue

Throughputn/a

Avg. wait timen/a

CI failure raten/a

Batch outcomesn/a

Queue healthn/a

No queue analytics dashboard

No historical view

#### Mergify

Full historical view

### Flaky test handling

What happens when a flake takes down a green PR.

#### GitHub Merge Queue

PR enters queue

CI runs

Test flakes

PR ejected from queue

Author manually re-queues

Flakes block your team

#### Mergify

PR enters queue

CI runs

Test flakes

Auto-detect flake

Quarantine + auto-retry

Flakes don't block merges

### CI batching

Test many PRs in one run, with bisect on failure.

#### GitHub Merge Queue

PR 1run #1: base + 1

PR 2run #2: base + 1 + 2

PR 3run #3: base + 1 + 2 + 3

3 CI runs

One merge group run per PR

#### Mergify

PR 1 + PR 2 + PR 3

1 CI run

Pass

all 3 merge

Fail

bisect, retry rest

1 CI run

One run for many PRs

### Priority handling

Hotfixes should jump the line, predictably.

#### GitHub Merge Queue

Before

\[A, B, C\]

PR D jumps to the top

After

\[D, A, B, C\]

In-flight A, B, C rebuild from scratch

All-or-nothing

#### Mergify

Urgent

PR

High

PRPR

Default

PRPRPR

Low

PR

Routed by labels or rules

Predictable order

### Monorepo / scope-aware queueing

PRs in unrelated services shouldn't block each other.

#### GitHub Merge Queue

PRfrontend

PRfrontend

PRbilling

PRbilling

PRinfra

PRinfra

One linear queue

Unrelated PRs block each other

#### Mergify

frontend

PR

PR

billing

PR

PR

infra

PR

PR

Scope-aware, parallel queues

Independent scopes run in parallel

### Monitoring and alerts

Stream queue events to Slack, Datadog, and your own services.

#### GitHub Merge Queue

\# merge-queue

No messages yet

GitHub's queue does not post to Slack. It emits `merge_group` webhooks, and the rest is yours to build.

Build the alerts yourself

#### Mergify

\# merge-queue

MergifyAPP09:41

Merged 3 pull requests with 1 CI run

#1421 reset password flow, #1422 reset endpoint, #1423 session expiry

MergifyAPP10:12

Batch failed, culprit found

#1430 left the queue (integration/checkout failed). #1428 and #1429 merged.

MergifyAPP11:03

test\_invoice\_rounding quarantined

Flaky on main. It still runs, it stops blocking merges.

MergifyAPP17:00

main is frozen for the 2.4 release

The queue keeps testing. Merges resume Monday at 09:00.

Also streams queue metrics to Datadog and events to your own services

Alerts that say what happened

### Merge integrity

Your CI signs off on a SHA. The commit that lands on main should be that SHA.

#### GitHub Merge Queue

PR enters queue

Stage merge commit

SHA: a1b2c3d

CI passes on a1b2c3d

Server rebuilds merge

SHA: 7d8e9f0 (new)

Lands on main

SHA: 7d8e9f0

Tested SHA ≠ Merged SHA

#### Mergify

PR enters queue

Stage merge commit

SHA: a1b2c3d

CI passes on a1b2c3d

same SHA

Lands on main

SHA: a1b2c3d

Tested SHA = Merged SHA

When the queue tests one SHA and lands a different one, branch protection still passes and the PR shows merged. You won't notice the drift until something breaks on main for reasons that don't match the diff. By then you're hunting through merge commits to figure out which ones were corrupted.

This is not theoretical. [A widely-discussed Hacker News thread](https://news.ycombinator.com/item?id=47881672) walks through a real case where the native queue silently reverted merged code via this exact mechanism.

> Mergify is a no-brainer. If you want to have your main branch always working then you have to introduce some merge queue functionality.

Paco Sevilla

DevOps Engineer at DeepDrive

Switching

## Same checks, one file.

The checks your branch protection requires today become the queue's merge conditions. Your workflows don't change.

1.  Install the GitHub App on one repository. GitHub's queue keeps running the others.
2.  Copy your required checks into `merge_conditions` in `.mergify.yml`.
3.  Compare a week of CI runs. Queue analytics show runs per merged pull request. Switch the rest when the numbers convince you.

```
# .mergify.yml
queue_rules:
  - name: default
    batch_size: 8 # one CI run can validate up to 8 PRs
    merge_conditions:
      - check-success = build
      - check-success = test

scopes:
  source:
    files:
      api:
        include:
          - services/api/**
      web:
        include:
          - apps/web/**
```

## Teams that merge more and break main less.

[

### 2x merge throughput with 3‑hour CI runs

Read story →

Cerebras

350 engineers · AI Infrastructure

](https://mergify.com/customers/cerebras)

[

### Cut CI time and kept main green

Read story →

Apex Fintech Solutions

350 engineers · Financial Technology

](https://mergify.com/customers/apex)

[

### 2x faster merges across a massive monorepo

Read story →

Back Market

300 engineers · E-commerce

](https://mergify.com/customers/back-market)

[

### 100% green main, faster shipping

Read story →

PayFit

150 engineers · HR Tech

](https://mergify.com/customers/payfit)

## FAQ

### Does Mergify replace GitHub's merge queue or work alongside it?

It replaces it. Only one queue can own merging into a given branch, so pick Mergify or GitHub's native queue per repo. You can still run Mergify on some repos and GitHub's queue on others.

### Doesn't GitHub's merge queue already batch pull requests?

Partly. GitHub can merge several pull requests at once (its merge limits go from 1 to 100), and each merge group includes the pull requests ahead of it. But it still dispatches one merge group, and so one CI run, per queued pull request. [GitHub's docs](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) walk through it: pull request #2 gets its own branch containing the base, #1 and #2. Mergify can test a batch of pull requests in a single run, and splits the batch to find the culprit when it fails.

### Can I evaluate Mergify without disabling GitHub's merge queue?

Yes. Install Mergify on a low-traffic repo first, leave GitHub's queue managing your busy repos, and compare for a couple of weeks. The [customer stories](https://mergify.com/customers) have a few examples of teams that did exactly that.

### Is the silently-reverted-code incident a real risk with GitHub's queue?

Yes, and it stems from how the queue rebuilds merge commits server-side after CI passes. The merged SHA is not the SHA your CI signed off on, so a successful queue run can still land code that was not the code under test. [The original Hacker News thread documents the incident](https://news.ycombinator.com/item?id=47881672). Mergify does not rebuild the merge commit, so the tested SHA is the merged SHA.

### How long does it take to migrate from GitHub merge queue to Mergify?

Most teams switch a single repo in under a day. Install the GitHub App, then commit a `.mergify.yml` with your queue rules. Larger setups with parallel queues take longer to design but are still day-one work, not week-one.

### Will my GitHub Actions workflows need to change?

No. Mergify pushes each candidate merge to a temporary queue branch and opens a draft PR for it, so workflows you already trigger on push or pull\_request run there. If your existing PR CI works today, queue CI works without edits. The `merge_group` trigger GitHub's queue required can stay or go.

### How does pricing compare?

GitHub merge queue is free, included with GitHub. Mergify is free for open-source projects and small teams; paid plans scale with active contributors. [See pricing](https://mergify.com/pricing) for current tiers.

Last updated: October 14, 2026

## Keep the queue. Lose the wait.

All features included, up to 5 users. No credit card required.

[Get started](https://dashboard.mergify.com/)[See how Merge Queue works](https://mergify.com/product/merge-queue)
