Install · How it works · Why · Contribute
CIHub is a self-hosted merge queue for GitHub. It keeps main green with the CI you already have.
Two pull requests pass CI on their own. You merge both. main is red, and nobody knows why.
CIHub makes that impossible. Approve a pull request, type /cihub merge, and go back to work. CIHub lines it up
behind the others, tests it together with everything that lands before it, and merges it only if the result still
passes. No rebase loop, no broken main, no "who merged that?".
- Green by design. What gets tested is exactly what lands.
- Your CI, unchanged. GitHub Actions, Buildkite, CircleCI, Jenkins: if it reports a check, CIHub waits for it.
- Yours to run. One container and a Postgres. Your code stays on your infrastructure.
- Never a mystery. Each pull request says where it stands in the queue and what it waits for.
- Quick when it gets busy. Pull requests are tested in parallel or in batches, and one flaky failure does not kick anyone out.
| 1. Approve | 2. Queue | 3. Merge |
|---|---|---|
| A pull request is approved and its checks are green. | Comment /cihub merge. CIHub tests it on top of everything ahead of it, alone or in a batch. |
If that exact combination passes, CIHub merges it. If not, the pull request leaves the queue, with the reason on it. |
INSTALL.md takes you from zero to your first merged pull request in about 30 minutes, with Docker
Compose or the Helm chart.
If you use the GitHub merge queue, Mergify, Trunk, Aviator, Graphite or bors,
specs/COMPETITION.md compares them with CIHub: the ideas that CIHub takes from each one,
and where it is different.
Early days: v0.2. The queue, its batches and its dashboard work; metrics, parallel queues for monorepos and flaky test detection come next.
CIHub is in active development. Do not use it in production yet: its behavior, its configuration and its data can change without notice from one version to the next.
Read GOAL.md for what CIHub is for and AGENTS.md for how we build it, with or
without a coding agent.
FSL-1.1-ALv2. Use, modify and run CIHub for your own needs, free of charge. Offering it to others as a competing commercial product or service is not allowed. Each version becomes Apache-2.0 two years after its release.