โ—€ Playbook index
NO.19.3

Dependabot

Updated: 2026-07-22

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.

FeatureWhat does it do?TriggerOutput
๐Ÿšจ Security alertsNotifies you of vulnerabilities in existing dependencies (incl. opt-in npm malware alerts โ†—)When a new CVE is added to the GitHub Advisory DatabaseSecurity tab + email
๐Ÿ”ง Security updatesAutomatically opens a PR to fix the vulnerabilityWhen an alert fires (automatically)PR (bumps vulnerable dep to fixed version)
โฐ Version updatesOpens PRs to keep up with new versions regardless of vulnerabilitySchedule 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 groups to batch multiple packages into a single PR, or ignore to 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 ReviewDependabot alerts
WhenEvery 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.0 in 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

FeaturePublic repoPrivate 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).