Dependabot policy checklist: weekly batching, grouping, and safe update gates
A practical Dependabot operating policy: scope (npm + Actions), weekly batching, grouping, safe defaults for auto-merge, and CI gates that prevent update PRs from becoming incidents.
Table of Contents
- Conclusion
- Explanation
- Practical Guide
- Step 1: define scope (minimum: npm + GitHub Actions)
- Step 2: batch weekly (default)
- Step 3: group updates into review units
- Step 4: keep auto-merge off (unless you can prove safety)
- Step 5: move Actions to SHA pinning, then let Dependabot bump SHAs
- Step 6: add CI gates that stop risky update PRs
- Pitfalls
- Checklist
- FAQ
- Q1. Why weekly batching instead of daily?
- Q2. Isn’t auto-merge good for security?
- Q3. Why include GitHub Actions updates?
- Internal links
- References
How should you run Dependabot so updates stay safe and reviewable?
Conclusion
Treat dependency updates as ops. The simplest sustainable policy is:
- scope: npm + GitHub Actions
- cadence: weekly batch by default
- grouping: reduce PR count into review units
- auto-merge: off unless strictly constrained
- gates: fail/require approval on new dependencies and install scripts
The goal is not “automate everything”. It’s “automate safely”.
Explanation
Common failure modes:
- daily PR spam → humans ignore it
- updates disabled → vulnerabilities pile up
- patch auto-merge → subtle breakage slips into main
- GitHub Actions left on moving tags → workflow supply chain drift
A good policy makes update work predictable:
- a known time window
- a known batch size
- predictable risk gates
Practical Guide
Step 1: define scope (minimum: npm + GitHub Actions)
Update these ecosystems:
- npm (your runtime/tooling deps)
- GitHub Actions (your CI supply chain)
Step 2: batch weekly (default)
Daily PRs collapse review.
- schedule weekly (e.g., Monday)
- treat urgent security fixes as explicit exceptions
Step 3: group updates into review units
Example groups:
- lint/format/test tooling
- build tooling
- runtime dependencies (higher scrutiny)
Decision rule:
- Group by “blast radius and review effort”, not by “whatever Dependabot emits”.
Step 4: keep auto-merge off (unless you can prove safety)
Safer default:
- no auto-merge, even for patch
If you must auto-merge, require all:
- small, bounded diff (group-limited)
- full CI green
- CODEOWNERS approval
Step 5: move Actions to SHA pinning, then let Dependabot bump SHAs
- replace
uses: owner/action@v4with commit SHA pinning - then Dependabot can update SHAs on your weekly cadence
Step 6: add CI gates that stop risky update PRs
Hard stops:
- new dependency added
- install scripts introduced (
preinstall/install/postinstall)
These are the highest-signal events for supply chain risk.
Pitfalls
- unlimited PRs and no time window
- grouping that mixes unrelated changes (review becomes impossible)
- auto-merge without constraints
- ignoring GitHub Actions updates
Checklist
- [ ] Dependabot scope includes npm
- [ ] Dependabot scope includes GitHub Actions
- [ ] Update cadence is weekly by default
- [ ] Open PR limit is set (prevents PR floods)
- [ ] Grouping rules exist (tooling vs runtime)
- [ ] Auto-merge is off by default
- [ ] If auto-merge exists, it requires CODEOWNERS + full CI green
- [ ] Actions are pinned by commit SHA (not moving tags)
- [ ] CI fails or requires approval on new dependencies
- [ ] CI fails or requires approval on install scripts
- [ ] Emergency patch process is documented
FAQ
Q1. Why weekly batching instead of daily?
Because review capacity is the bottleneck. Weekly batching creates a predictable routine and reduces fatigue.
Q2. Isn’t auto-merge good for security?
Only when constrained. Unbounded auto-merge can become the attack path. Start with manual review and add auto-merge only for tightly scoped changes.
Q3. Why include GitHub Actions updates?
Because workflows execute third-party code. CI is part of your supply chain, and leaving Actions stale or unpinned increases risk.
Internal links
- Parent hub: AI development: start here
- Related:
References
- GitHub Docs: Dependabot: https://docs.github.com/code-security/dependabot
- GitHub Docs: Dependabot version updates: https://docs.github.com/code-security/dependabot/dependabot-version-updates
- GitHub Docs: Dependabot security updates: https://docs.github.com/code-security/dependabot/dependabot-security-updates
Popular
- 1Permit2 explained (Web3): why approvals changed and how to use it safely (checklist)
- 2Read wallet signing screens (Web3): a 30-second checklist to avoid permission traps
- 3Spec-to-implementation prompt template (AI development): how to stop the model from guessing
- 4Revoke token approvals on EVM: how to audit allowances safely (checklist)
- 5Clarifying questions checklist (AI development): what to ask before you let an LLM build