Integrating Dependabot with Mergify
How to automate your dependencies update using Mergify.
Dependabot helps you keep your dependencies up-to-date by automatically opening pull requests for outdated dependencies. When combined with Mergify, you can automate parts of the process even further, ensuring your projects stay current with minimal manual intervention.
Automating Dependabot Pull Request Merges
There are two primary ways to automate the merging of Dependabot PRs with Mergify:
1. Direct Merge or Merge Queue
You can set up a pull request rule to automatically merge Dependabot PRs or place them in the merge queue.
pull_request_rules:- name: Automatically merge Dependabot PRsconditions:- author = dependabot[bot]actions:merge:# Or use queue: to use the merge queue
2. PR Approval
If you have GitHub's branch protection set up to require approvals, you can use Mergify to automatically approve Dependabot PRs.
pull_request_rules:- name: Automatically approve Dependabot PRsconditions:- author = dependabot[bot]actions:review:type: APPROVE
Filtering Dependabot PRs
Dependabot provides specific labels for the type of dependency update, such as
dependabot-dependency-name
, dependabot-dependency-type
, and
dependabot-update-type
. You can use these labels in your Mergify rules to
filter which Dependabot PRs to auto-merge. For instance, you might only want to
auto-merge minor version bumps:
pull_request_rules:- name: Auto merge minor version bumpsconditions:- author = dependabot[bot]- dependabot-update-type = version-update:semver-minoractions:queue:method: merge
Batching Dependency Updates
For projects where there are frequent updates to a large number of small libraries, it's efficient to batch these updates together. Using Mergify's merge queue feature, you can automatically batch and test these updates together, reducing CI load and ensuring compatibility.
For example, you could set up a merge queue to batch those PRs 10 by 10:
queue_rules:# If you have other queues defined, add this at the end so it is processed last- name: dep-updatebatch_size: 10# Wait for up to 30 minutes for the batch to fill upbatch_max_wait_time: 30 minqueue_conditions:- author = dependabot[bot]pull_request_rules:- name: Automatically queue Dependabot PRsconditions:- author = dependabot[bot]actions:queue:
Disable Dependabot's Automatic Rebase
By default, Dependabot will try to rebase its pull requests every time there's a new commit to the main branch. In high-velocity projects with a lot of update, this can lead to unnecessary CI runs. It's recommended to disable Dependabot's automatic rebase feature and instead rely on Mergify to queue and merge these updates efficiently.
To disable automatic rebasing in Dependabot, use the
rebase-strategy
settings and turn off automatic rebase.
version: 2updates:- package-ecosystem: "npm"directory: "/"schedule:interval: "weekly"# Disable rebasing for npm pull requestsrebase-strategy: "disabled"
With Mergify and Dependabot working together, you can ensure your project's dependencies are always up-to-date with minimal effort, ensuring a smooth and efficient update process.