Outgrowing GitHub’s merge queue?

The enterprise merge queue for teams that ship fast

Keep main green, cut CI costs up to 90 percent, and give engineers back the hours they lose waiting.

Parallel Queues

Intelligent Batching

Flake Protection

Works Where You Do

Stacked PRs

Trusted by teams that ship hundreds of PRs every hour

Brex
Zillow
Faire
Cockroach Labs
Klaviyo
Retool
Google X
Zipline

6 hrs → 90 min

Time to merge

Reduced time to merge on day one in a 900-project Nx monorepo

The bottleneck moved from coding to merging

More PRs, more logical conflicts, and flaky tests now overwhelm the merge step, whether you merge by hand or run a single-lane queue.

Agentic engineering

Agents open more PRs and churn code more aggressively. That drives logical conflicts, where two PRs merge cleanly but still break main, and pushes you to need a merge queue earlier in your repo's growth.

Flakes evict good PRs

A flaky test kicks a healthy PR out of the queue. It goes to the back of the line, and every PR behind it re-runs CI.

Serial queues don't scale

GitHub's merge queue tests unrelated changes one at a time. Your frontend PR waits behind an API change it can't conflict with.

How Trunk keeps your queue moving

Parallel queues

Test unrelated changes at the same time

Your frontend PR should not wait behind a backend PR it cannot conflict with. Trunk tests independent changes in parallel from the impacted targets each PR touches. Bazel and Nx compute those automatically. On any other setup, provide them via the API.

Anti-flake protection

Flakes cannot poison your pipeline

Two layers keep flakes out of your way. In the queue, a PR that fails on a flake stays in line while downstream PRs test, and merges once a later one passes. Upstream, Trunk Flaky Tests quarantines known flakes so they never block the queue at all.

Intelligent batching

Test a batch of PRs in a single run

Trunk batches compatible PRs into a single run. If a batch fails, automatic bisection isolates the culprit and the healthy PRs keep moving. Teams cut CI costs by 60-90 percent.

Works Where You Do

Meet your engineers where they already work

A custom browser extension brings queue status and controls into the GitHub PR page, so no one learns a new tool. With Slack updates alongside, your team keeps shipping without missing a beat.

GitHub merge box managed by Trunk with an Add to merge queue button

Stacked PRs

Queue an entire stack at once

Native GitHub Stacked PR support allows you to enqueue any PR in a stack. Trunk tests and merges the whole stack together, atomically. No proprietary stacking tool to adopt and no rebases to babysit.

Able to merge as a stack, three PRs marked Ready

Ship faster and keep main green

Free · CI Health Report

Not sure if you need a merge queue?

Most teams can’t say how long their PRs actually take to land. Connect read-only and we’ll audit your real numbers: your P90 time to merge, how often main is red, the hours lost waiting in the queue, and the CI compute a parallel, batched queue would give back.

Main pass rate · where you stand

Fastest shippers94.0%
Your sample82.0%
Industry median70.8%

How often main is green is how often you can actually ship. Numbers above are illustrative.

What teams are saying

How Trunk fits your setup

Trunk is an orchestration layer that manages how your PRs merge into main. GitHub and GitLab keep running your CI and runners. Trunk reads impacted targets for parallel lanes and exposes queue signals and controls to the tools you already use.

Source control

Required

You install Trunk as an app. GitHub and GitLab manage your runners and pipelines.

GitHubGitLab

Build system

Optionally, you can post your impacted targets to enable parallel lanes.

BazelNxJSON
Trunk

Merge Queue

Developer experience

SlackGitHub

Metrics & dashboards

PrometheusDatadogCSV

API & automation

REST APIWebhooksCLIMCP

Safe to put in the merge path

Trunk is built to be secure, resilient, and observable: SOC 2 Type II, scoped to your existing GitHub permissions, steady when GitHub is not, and fully inspectable from the outside.

Scoped access

Trunk requests only the permissions its features need, and only for the tools you enable. It runs on PR metadata, commit SHAs, and check results, never a copy of your source.

SOC 2 Type II

Independently audited and penetration tested, with annual reviews. The report is available under NDA.

Enforced permissions

Your branch protection, rulesets, and required reviews stay in force. Trunk has read-only access to them and merges only what GitHub already allows.

Outage resilience

Webhook dedup, polling fallback, and a break-glass merge keep the queue moving when GitHub does not.

Full observability

Every merge, eviction, and override is logged and exportable through the API, webhooks, and Prometheus.

Private Preview: Trunk Merge Queue is available on-premise. Request access →

FAQs

Stop waiting on your merge queue.

Try Trunk and watch the queue move.