Skip to content
Security & operations

Dependabot Batch

Merge every open dependency update in one branch and one review.

  • Dependencies
  • CI
  • Lockfiles

Install

npx skills add webrenew/skills --skill dependabot-batch
GitHub

1 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
All skills
  1. 24

    Security Hardening

    security-hardening

    Find common gaps in Next.js security before launch.

    Find common gaps in Next.js security before launch.

  2. 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.

  3. 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.

  4. 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.