Dependabot Batch
Merge every open dependency update in one branch and one review.
- Dependencies
- CI
- Lockfiles
Install
npx skills add webrenew/skills --skill dependabot-batch1 file · 206 lines · any agent that reads SKILL.md
Use it when
- Dependabot has many open pull requests
- Each update starts a full CI run
- Lockfile conflicts block each merge
What your agent delivers
- One branch with every safe update
- One lockfile update and one CI run
- A list of the updates it held back, with the reason for each
Source files
Read every line before you install. Copy or download one file.
SKILL.md
206 lines
---
name: dependabot-batch
description: Use when a repo has several open Dependabot PRs and you want them collapsed into ONE branch and ONE PR instead of merging them one at a time — "batch the dependabot PRs", "combine all dependency updates", "fix all dependabot suggestions in one branch", "too many dependabot PRs", "our CI/preview deploys are burning money on dependabot". Also use when asked to clear open Dependabot security alerts, or when a dependency-update PR needs verifying before merge. Covers any ecosystem Dependabot supports (npm/pnpm/yarn/bun, pip, cargo, go, bundler, maven, github-actions, docker), and handles the case where some suggested bumps are breaking and must be held back.
---
# Batching Dependabot PRs
## Why this exists
Dependabot opens one PR per update. Each one triggers a full CI run and, on
platforms like Vercel or Netlify, a preview deployment. Ten open PRs means ten
builds for changes that will all end up in the same lockfile anyway — and they
serialize badly, because every merge invalidates the others' lockfiles and
forces a rebase.
Collapsing them into a single branch turns N build cycles into one, and gives
you a single place to verify the combined dependency graph — which is what
actually ships. Bumps that pass in isolation can still conflict with each other;
batching surfaces that before merge rather than after.
## The shape of the work
Gather → apply manifest edits by hand → regenerate the lock → run every gate →
drop only what's genuinely broken → one PR that documents what was held back.
The one thing to internalize: **do not merge or cherry-pick the Dependabot
branches.** They each rewrote the lockfile against a different base, so combining
them produces conflicts that are tedious and easy to resolve wrongly. Take only
the *manifest* version numbers from them and let the package manager rebuild the
lock once, from a clean state. The lockfile is derived output — regenerate it,
never hand-merge it.
## 1. Gather everything
```bash
gh pr list --state open --author "app/dependabot" \
--json number,title,headRefName,createdAt --limit 100
gh api repos/{owner}/{repo}/dependabot/alerts \
--jq '.[] | select(.state=="open") | {num:.number, pkg:.dependency.package.name,
sev:.security_advisory.severity,
vuln:.security_vulnerability.vulnerable_version_range,
patched:.security_vulnerability.first_patched_version.identifier}'
```
Pull alerts too, not just PRs. Alerts on transitive dependencies often have no PR
at all — they're fixed by an override/resolution/constraint, and folding them in
here costs nothing extra.
Then read each PR's manifest change (ignore the lockfile half of the diff):
```bash
gh pr diff <N> -- package.json # or Cargo.toml, go.mod, requirements.txt…
```
**Multi-account `gh` gotcha.** If `gh` errors with `Could not resolve to a
Repository`, the active account can't see this repo. Don't switch the global
account — that's shared state you'd be mutating out from under the user. Scope a
token to the command instead:
```bash
Related skills
All skills- 24
Find common gaps in Next.js security before launch.
- 26
Launch Checklist
Launch packlaunch-site-checklist
Go live without losing leads or rankings to silent launch bugs.
Go live without losing leads or rankings to silent launch bugs.
- 01
Technical SEO
Growth & marketingseo-technical
Make each page clear to search engines. Give them a path to every link.
Make each page clear to search engines. Give them a path to every link.
- 02
Local SEO
Launch packGrowth & marketinglaunch-local-seo
Get found by customers nearby, in local search and on Google Maps.
Get found by customers nearby, in local search and on Google Maps.