Migrate from Bulldozer to Mergify
Map Bulldozer configuration and behaviors to Mergify rules and merge queue.
Bulldozer focuses on automerging pull requests based on labels, reviews, and status checks. Mergify covers that and more, with a powerful rule engine and a production‑grade merge queue.
This page shows a practical, minimal‑diff path to move from Bulldozer to Mergify.
Typical Migration Plan
Section titled Typical Migration Plan- Keep your labels and branch protections as‑is
- Translate Bulldozer settings to one or two Mergify rules
- Start with a dry‑run or low‑impact setup and expand gradually
Common Bulldozer config → Mergify
Section titled Common Bulldozer config → MergifyExample Bulldozer snippet:
merge:
trigger:
label: ["merge when ready"]
branch_patterns: ["feature/.*"]
method: squash
required_statuses:
- "ci/circleci: ete-tests"
Equivalent Mergify:
pull_request_rules:
- name: Automerge when ready
conditions:
- label = merge when ready
- head ~= ^feature/
- "check-success = ci/circleci: ete-tests"
actions:
merge:
method: squash
Notes:
- 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
Enabling the Merge Queue (optional but recommended)
Section titled Enabling the Merge Queue (optional but recommended)If you rely on Bulldozer plus manual rebases to keep PRs up‑to‑date, Mergify’s Merge Queue removes that toil — with even more optimizations.
Add a queue rule and switch to queueing instead of immediate merge:
queue_rules:
- name: default
autoqueue: true
queue_conditions:
- base = main
- check-success = ci
-
The queue keeps PRs updated and merges them only after passing on the latest version of the base branch
-
You can set priorities, batches, and parallel checks later
Feature parity quick table
Section titled Feature parity quick table-
Merge methods: squash/merge/rebase → supported
-
Delete branch after merge →
delete_head_branch
action -
Rebase/update before merge →
rebase
/update
actions or merge queueupdate_method
-
Require labels → conditions
label =
-
Restrict by authors/paths → conditions
author =
,files ~=
, etc.