Configuring Dependabot Integration
1. Enabling Dependabot Updates
| Option | Values | Notes |
|---|---|---|
| dependabot.enabled | true |
Enables Dependabot for the repository |
| dependabot.automerge | false |
Automatically merge pull requests when tests pass |
| dependabot.schedule.interval | daily |
Schedule for checking updates (daily, weekly, monthly) |
Example: Enabling Dependabot in GitHub Actions
name: Dependabot Updates
on:
schedule:
- cron: '0 0 * * *'
jobs:
dependabot:
runs-on: ubuntu-latest
steps:
- name: Enable Dependabot
run: |
echo "Dependabot is enabled for this repository"
Note: Dependabot updates are configured via
.github/dependabot.yml or through the GitHub UI.
2. Configuring Update Schedule
| Option | Values | Description |
|---|---|---|
| schedule.interval | daily, weekly, monthly |
Sets how often Dependabot checks for updates |
| schedule.day | monday to sunday |
Day of the week to run weekly checks (optional) |
| schedule.time | 09:00 |
Time of day to run checks (optional) |
| schedule.timezone | UTC, America/New_York |
Timezone for scheduling (optional) |
Example: Daily Updates
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
Example: Weekly Updates on Monday
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
Note: Dependabot will create a pull request for each update found, and you can configure additional settings like
open-pull-requests-limit to limit concurrent PRs.
3. Setting Target Branch
| Option | Values | Description |
|---|---|---|
| target-branch | main, develop, or custom branch name |
Specifies the branch where Dependabot will create pull requests for updates |
Example: Setting Target Branch in Workflow
name: Dependabot Configuration
on:
schedule:
- cron: '0 0 * * *'
jobs:
dependabot:
runs-on: ubuntu-latest
steps:
- name: Update target branch
uses: dependabot/fetch-and-update@v1
with:
target-branch: develop
4. Limiting Open PRs
| Option | Values | Notes |
|---|---|---|
| open-pull-requests-limit | 10 |
Maximum number of open pull requests from Dependabot |
| open-pull-requests-limit | 0 |
DEPRECATED No longer supported in latest versions |
Example: Configuring Open PR Limit
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
Note: Setting
open-pull-requests-limit to 0 is deprecated and will be removed in future versions.
Warning: If
open-pull-requests-limit is set too low, Dependabot may not create PRs for important security updates.
5. Grouping Updates
Grouping updates in Dependabot helps reduce the number of pull requests created for similar dependency updates, making it easier to manage and review changes.
| Option | Values | Description |
|---|---|---|
| group.name | all |
Name of the group to which updates belong |
| group.update-types | minor, patch |
Type of updates to include in the group |
| group.schedule | daily, weekly |
Schedule for checking and updating grouped dependencies |
Example: Grouping Updates in Dependabot Configuration
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
groups:
production-dependencies:
patterns:
- "express"
- "lodash"
update-types:
- "minor"
- "patch"
development-dependencies:
patterns:
- "webpack"
- "jest"
update-types:
- "patch"
6. Ignoring Dependencies
| Dependency | Version | Reason | Expiry |
|---|---|---|---|
| org.example:library | v1.2.3 |
Known security vulnerability | Never |
| com.fasterxml.jackson.core:jackson-databind | 2.13.2 |
Deprecated in favor of 2.15+ | 2025-06-01 |
Example: dependabot.yml configuration
version: 2
updates:
- package-ecosystem: maven
directory: "/"
schedule:
interval: weekly
ignore:
- dependency-name: "org.example:library"
versions: ["v1.2.3"]
- dependency-name: "com.fasterxml.jackson.core:jackson-databind"
versions: ["2.13.2"]
expiry-date: "2025-06-01"
Note: Ignored dependencies will not be included in any Dependabot pull requests. Use
expiry-date to automatically re-evaluate ignored dependencies after a set period.7. Using Version Constraints
| Constraint Type | Example | Description |
|---|---|---|
| version | 1.2.3 |
Fixed version. Updates are not performed. |
| range | >=1.0.0 <2.0.0 |
Allows updates within a version range. |
| wildcard | 1.x |
Allows updates to any patch or minor version within a major version. |
| caret | ^1.2.0 |
Allows updates to any patch or minor version, but not a new major version. |
| tilde | ~1.2.0 |
Allows updates to any patch version, but not a new minor or major version. |
Example: Setting Version Constraints in Dependabot Configuration
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
versioning-strategy: increase
constraints:
- dependency-type: production
version: "1.2.3"
- dependency-type: development
version: ">=1.0.0 <2.0.0"
Note: Version constraints can be applied per dependency type (e.g., production vs development) to control update behavior more granularly.
8. Configuring PR Reviewers
| Option | Values | Notes |
|---|---|---|
| reviewers | ['user1', 'user2'] |
List of GitHub usernames to request as reviewers |
| team-reviewers | ['org/team1'] |
Team names to request as reviewers |
| required-reviewers | 2 |
Minimum number of reviewers required before merging |
Example: Basic PR Reviewer Configuration
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
reviewers:
- "octocat"
- "github-actions-team"
Note: Reviewers must have read access to the repository to be assigned.
Warning: If a team is specified, all members of that team will be requested as reviewers.
9. Setting Commit Message Format
| Option | Values | Description |
|---|---|---|
| commit-message-format | default, short, full |
Controls the format of commit messages generated by Dependabot |
Example: Configuring Commit Message Format
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message-format: "short"
Note: The
short format uses a concise message like Update dependency foo to v1.2.3. The full format includes more details such as the version change and PR title.
10. Handling Security Updates
| Update Type | Configuration | Description | Notes |
|---|---|---|---|
| security-updates | true |
Enables security updates for dependencies | Requires security in labels |
| automated-security-updates | false |
Disables automated security updates | Default is true |
Example: Enable Security Updates
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
security-updates: true
Note: Security updates are only available for packages that support
security-advisories.Warning: Enabling
security-updates may increase the frequency of pull requests if many vulnerabilities are found.11. Auto-Merging Dependabot PRs
| Option | Values | Notes |
|---|---|---|
| automerge | true or false |
Enables or disables auto-merging of Dependabot PRs |
| automerge-type | branch, rebase, or squash |
Determines merge strategy when auto-merging |
| ignore | Array of version patterns to ignore | Prevents updates for specific versions or packages |
Example: Enabling Auto-Merge for Dependabot
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
automerge: true
automerge-type: "squash"
Note: Auto-merging requires that all checks pass and the PR is in a mergeable state.
Warning: Enabling auto-merge can lead to unexpected breaking changes if not properly tested.
12. Managing Dependabot Secrets
| Secret Name | Usage | Notes |
|---|---|---|
| DEPENDABOT_TOKEN | github.token |
Used for authenticating with GitHub API in workflows |
| DEPENDBOT_SECRET | secrets.DEPENDABOT_SECRET |
Custom secret for Dependabot to access external services |
Example: Using Dependabot Secrets in a Workflow
name: Dependabot Secrets Example
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use Dependabot Secret
run: |
echo "Using secret: ${{ secrets.DEPENDABOT_SECRET }}"
Note: Dependabot secrets are managed in the repository's
Settings > Secrets and variables section.