Context
The repo gets ~26 Dependabot PRs / 10 months, almost all targeting /catalog. These are GitHub-triggered security updates (advisory-driven), not version bumps — .github/dependabot.yml only configures github-actions weekly. Recurring offenders: axios, follow-redirects, dompurify, lodash, serialize-javascript, node-forge, webpack plugins, vega-*, qs/express, jsonpath, jws, on-headers/compression, tmp, vite, rollup, ajv, @graphql-codegen/*, bundlewatch, etc.
What won't move the needle
- Grouping in
dependabot.yml alone — needs applies-to: security-updates and an explicit npm ecosystem entry. Modest reduction (~30%) since advisories arrive over time, not in batches.
- Renovate ↔ Dependabot split (Renovate for versions, Dependabot for security) — best-practice but doesn't reduce security PR count, just reorganizes.
What would help
A. Make PRs invisible (highest leverage, lowest effort)
- Enable auto-merge for patch/minor security PRs on green CI (Renovate
automerge: true or GitHub native auto-merge + branch protection).
- Schedule Renovate to batch routine bumps weekly (
schedule: [\"before 6am on monday\"]).
B. Trim the catalog dep tree (eliminates root cause for ~30–40% of historical PRs)
Quick wins (~2h):
Medium (4–6h each):
Lower priority:
C. Load-bearing, not prunable
vega-*, webpack + plugins, @graphql-codegen/*, dompurify, jsdom. These will keep generating PRs; auto-merge is the only practical mitigation.
Suggested order
- Enable auto-merge for patch/minor security on green CI (1 PR, biggest immediate relief).
- Drop
bundlewatch + unused FP packages (1 PR, kills 2 chronic offenders).
- AWS SDK v3 migration (separate PR, real bundle win).
- Markdown/highlighter swap (separate PR).
Expected outcome: ~half the historical PR volume eliminated, the remainder largely auto-merged.
Context
The repo gets ~26 Dependabot PRs / 10 months, almost all targeting
/catalog. These are GitHub-triggered security updates (advisory-driven), not version bumps — .github/dependabot.yml only configuresgithub-actionsweekly. Recurring offenders:axios,follow-redirects,dompurify,lodash,serialize-javascript,node-forge,webpackplugins,vega-*,qs/express,jsonpath,jws,on-headers/compression,tmp,vite,rollup,ajv,@graphql-codegen/*,bundlewatch, etc.What won't move the needle
dependabot.ymlalone — needsapplies-to: security-updatesand an explicit npm ecosystem entry. Modest reduction (~30%) since advisories arrive over time, not in batches.What would help
A. Make PRs invisible (highest leverage, lowest effort)
automerge: trueor GitHub native auto-merge + branch protection).schedule: [\"before 6am on monday\"]).B. Trim the catalog dep tree (eliminates root cause for ~30–40% of historical PRs)
Quick wins (~2h):
bundlewatch— sole source ofaxios+follow-redirects. ~4 historical PRs.monocle-ts,newtype-ts— zero imports.Medium (4–6h each):
aws-sdkv2 → v3 modular clients (only S3, Athena, Bedrock used). ~15 MB bundle + smaller CVE surface.remarkable+highlight.jswithprism-react-renderer(5 import sites; both have CVE history).Lower priority:
lodashusage with native equivalents (~16 sites).immutable@3.8.2→ frozen objects / RTK (~7 sites; v3 is ancient).ramdausage (135+ sites — defer).C. Load-bearing, not prunable
vega-*,webpack+ plugins,@graphql-codegen/*,dompurify,jsdom. These will keep generating PRs; auto-merge is the only practical mitigation.Suggested order
bundlewatch+ unused FP packages (1 PR, kills 2 chronic offenders).Expected outcome: ~half the historical PR volume eliminated, the remainder largely auto-merged.