Shunt review
Batches Forgejo and Gitea pull requests for combined CI validation and failure isolation.
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
Shunt is a self-hosted merge queue for teams running Forgejo or Gitea. It collects pull requests with auto-merge enabled, stages their combined changes on a temporary branch, and runs the repository’s CI gate against that batch. When a batch fails, Shunt bisects it to identify problematic pull requests while allowing passing changes to proceed. This approach suits teams that want to validate changes together before merging, rather than relying on individual pull-request checks alone. It is designed for Linux and runs separately from the forge through its REST API.
Forge support is the defining fit: Shunt integrates with Forgejo and Gitea, and the listed category support excludes GitHub, GitLab, and Bitbucket. Reconciliation can be triggered by webhooks, with polling as a backstop. Configuration supports a single repository or topic-based multi-repository operation, so teams can choose a narrower or broader queue setup. Its role is specifically batch validation; it is not a merge-train product. Teams using one of the supported forges should weigh that focused fit against their need for integrations beyond those APIs.
Shunt is open source and MIT-licensed, with a free plan. Deployment options include a binary or container, as well as Docker, Helm, or Kustomize. Queue state can be kept in memory or made durable with bbolt or PostgreSQL, and the service exposes health, metrics, status, and webhook endpoints. Those choices give self-hosting teams flexibility over operations, but they also mean the team is responsible for running the service and its state store. Choose Shunt if Forgejo or Gitea batch CI validation and self-hosted deployment match your workflow; look elsewhere if your forge is GitHub, GitLab, or Bitbucket, or if you need a merge train.
Shunt pros and cons
- Where it wins
- Validates ready pull requests together on a temporary branch.
- Bisects failed batches to isolate problematic pull requests.
- Offers webhook reconciliation, durable state, and multiple deployment options.
- Where it doesn't
- Supports Forgejo and Gitea, not GitHub, GitLab, or Bitbucket.
- Requires self-hosting and separate operation from the forge.
- Batch validation is its focus; it does not provide a merge train.
Shunt fact sheet, pricing and score →
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.
Last updated · How we research and update