In a nutshell
Dependabot is GitHub's official bot that monitors your repository's dependencies.
When a vulnerability is found, it raises an alert and, when possible, automatically opens a fix PR. It also keeps stale dependencies regularly updated to newer versions.
Alerts vs Updates โ whatโs the difference?
Dependabot has 3 distinct features. Theyโre often confused, but they serve different purposes.
| Feature | What does it do? | Trigger | Output |
|---|---|---|---|
| ๐จ Security alerts | Notifies you of vulnerabilities in existing dependencies (incl. opt-in npm malware alerts โ) | When a new CVE is added to the GitHub Advisory Database | Security tab + email |
| ๐ง Security updates | Automatically opens a PR to fix the vulnerability | When an alert fires (automatically) | PR (bumps vulnerable dep to fixed version) |
| โฐ Version updates | Opens PRs to keep up with new versions regardless of vulnerability | Schedule defined in config file (daily / weekly) | PR (old โ latest) |
๐ Alerts = detection only; Updates = creates fix PRs. Security updates are layered on top of Alerts โ they wonโt run without Alerts enabled.
The role of the dependency graph
All of Dependabotโs decisions start from the dependency graph.
- ๐๏ธ Parses manifests and lock files โ reads dependency definitions from
package-lock.json,requirements.txt,go.mod,pom.xml,Gemfile.lock, and more - ๐ Resolves both direct and transitive dependencies โ even if you donโt directly depend on
lodash, itโs tracked if a dependency pulls it in - ๐ Cross-references the GitHub Advisory Database โ matches detected dependencies against published CVEs to identify vulnerabilities
- ๐ Supported ecosystems โ npm, pip, Maven, NuGet, Composer, Bundler, Go modules, Cargo, Gradle, Hex, Pub, Docker, GitHub Actions, and more
๐ The Advisory Database aggregates vulnerability data from GitHub, the community, and MITREโs CVE feeds.
Getting started (fastest path)
Step 1 โ Enable security alerts / updates
Repo โ Settings โ Code security
โ
Dependency graph
โ
Dependabot alerts
โ
Dependabot security updates
Just check three boxes. No config file needed โ it starts working immediately.
Step 2 โ Add .github/dependabot.yml if you want version updates
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
- ๐ฆ Specify the ecosystem with
package-ecosystem - ๐
interval:daily/weekly/monthly - ๐ท๏ธ Use
groupsto batch multiple packages into a single PR, orignoreto exclude specific packages
Step 3 โ Enable for the whole Org / Enterprise
From Org โ Settings โ Code security, use default settings to apply to all repositories at once.
Companion: Dependency Review
Dependency Review is the PR-time counterpart to Dependabot โ it blocks merges before bad dependencies get in. Runs on every PR, on any base branch (not just main).
| Dependency Review | Dependabot alerts | |
|---|---|---|
| When | Every PR (any branch) | Continuously, as CVEs land |
| Stops the merge? | โ Yes (required check) | โ Informational only |
| License check | โ allow / deny lists | โ N/A |
- ๐จ Vulnerable packages added or upgraded by the PR โ configurable
fail-on-severity - ๐ License compliance โ allow / deny lists (e.g. deny
GPL-3.0in a proprietary repo) - ๐ฆ Full dep diff incl. transitive deps resolved from lockfiles
Drop in actions/dependency-review-action and make it a required status check; org owners can enforce it across all repos via repository rulesets.
โ ๏ธ PR-time gate โ not a continuous watcher. Always pair it with Dependabot alerts, which catch CVEs published after merge.
AI triage: assign alerts to an agent
Every Dependabot alert has an โAssign to agentโ button โ hand it to Copilot / Claude / Codex and the agent reads the advisory + your repo to triage and remediate on demand, per alert.
- ๐ What the agent typically does โ reachability check (โis the vulnerable function actually called from my code path?โ), exploitability assessment in your context, then a draft fix PR that handles breaking changes, downgrades, and refactors
- ๐ Race multiple agents on the same alert and compare the resulting PRs
- ๐งน Auto-triage rules โ separately, auto-dismiss / snooze low-impact alerts by severity, ecosystem, dependency scope (runtime vs dev) so the agents only see alerts worth looking at
- ๐ Treat agent fixes as first-pass: human review + tests still required before merge
๐ฏ Alert โ Assign to agent โ reachability + fix โ draft PR โ human review โ merge. The bottleneck shifts from patch synthesis to approval.
๐ฐ Free for public repos. Private repos need GitHub Code Security (or the legacy Advanced Security bundle).
Eligibility and pricing
| Feature | Public repo | Private repo (Personal / Free) | Private repo (Team / Enterprise) |
|---|---|---|---|
| Dependency graph | โ On by default | โ Free (opt-in) | โ Free |
| Dependabot alerts | โ Free | โ Free | โ Free |
| Dependabot security updates | โ Free | โ Free | โ Free |
| Dependabot version updates | โ Free | โ Free | โ Free |
๐ฐ Dependabot itself is completely free on every plan. No GitHub Advanced Security license required.
โ๏ธ Version update Dependabot jobs run on GitHub-hosted runners โ free for public repos; private repos consume the standard Actions free tier (pay-as-you-go when exceeded).