Migrate from Bulldozer to Mergify
Move from Bulldozer automerge to Mergify's Merge Queue for safer, faster merges.
Bulldozer focuses on automerging pull requests based on labels, reviews, and status checks. Mergify’s Merge Queue covers that and more, with automatic PR updates, prioritization, batching, and parallel checks.
This page shows a practical path to move from Bulldozer to Mergify’s Merge Queue.
Typical Migration Plan
Section titled Typical Migration Plan- Keep your labels and branch protections as-is
- Set up a Mergify merge queue with conditions matching your Bulldozer config
- Start with a low-impact setup and expand gradually
Common Bulldozer config → Mergify Merge Queue
Section titled Common Bulldozer config → Mergify Merge QueueExample Bulldozer snippet:
merge: trigger: label: ["merge when ready"] branch_patterns: ["feature/.*"] method: squash required_statuses: - "ci/circleci: ete-tests"Equivalent Mergify configuration:
merge_protections_settings: auto_merge: true
merge_protections: - name: bulldozer-equivalent if: - base = main - head ~= ^feature/ success_conditions: - label = merge when ready - "check-success = ci/circleci: ete-tests"
queue_rules: - name: default merge_method: squashNotes:
-
auto_mergeautomatically queues PRs when all merge protectionsuccess_conditionspass -
Checks map to
check-success = <name>(orcheck-skipped,check-neutral) -
Required labels map to
label = <name>conditions -
Approvals map to review count or specific reviewers
-
The merge queue keeps PRs updated automatically — no manual rebases needed
Going Further with Merge Queue
Section titled Going Further with Merge QueueOnce you have basic automerge working, you can take advantage of features Bulldozer doesn’t offer:
-
Priorities — urgent PRs jump ahead in the queue
-
Batches — merge multiple PRs at once to reduce CI load
-
Parallel checks — test multiple queue entries simultaneously
Feature parity quick table
Section titled Feature parity quick table-
Merge methods: squash/merge/rebase → supported via
merge_method -
Delete branch after merge → use GitHub’s “Automatically delete head branches” repository setting
-
Rebase/update before merge → automatic in merge queue
-
Require labels →
label =insuccess_conditions -
Restrict by authors/paths →
author =,files ~=, etc. insuccess_conditionsorif
Was this page helpful?
Thanks for your feedback!