Skip to content

chore(deps): migrate from Dependabot to Renovate#760

Open
cailmdaley wants to merge 1 commit into
developfrom
chore/migrate-to-renovate
Open

chore(deps): migrate from Dependabot to Renovate#760
cailmdaley wants to merge 1 commit into
developfrom
chore/migrate-to-renovate

Conversation

@cailmdaley

Copy link
Copy Markdown
Contributor

Why

Dependabot's only noise lever is grouping, and its security channel bypasses even that — so a same-day burst of advisories arrives as N separate PRs that a human merges by hand (four landed 2026-06-20). That's not how repos at this scale manage a lockfile.

Renovate replaces it with a single Dependency Dashboard issue plus branch automerge: routine uv.lock updates land silently on green CI with no PR at all; only things that need a human decision (majors, dependency floors) ever surface.

What's in .github/renovate.json5

Concern Behaviour
Routine minor/patch Batched weekly into one branch, automerged on green CI, no PR
pyproject floors UntouchedrangeStrategy: update-lockfile means routine updates only ever change uv.lock, never the abstract floors
Majors 30-day age, then dashboard approval before a PR is even opened — never silent, never auto
Security (CVE) GitHub + OSV alerts (adds malicious-package detection); short 3-day window then automerge on green CI
Cooldown 14 days / 30 for majors — same supply-chain window as the old dependabot.yml
GitHub Actions Stay SHA-pinned (helpers:pinGitHubActionDigests)
ngmix Renovate ignores it — it's a deliberate tag pin in [tool.uv.sources]

Config validated with renovate-config-validator (passes clean). This PR also removes .github/dependabot.yml.

Activation — one org-admin step (⚠️ needs an admin, not just write access)

Renovate doesn't run until its runner is set up. Recommended cutover order:

  1. Merge this PR (removes dependabot.yml, adds the Renovate config).
  2. [admin] Install the Renovate GitHub App on CosmoStat/shapepipe: https://github.com/apps/renovate → Configure → select the repo. Free for public repos; runs as its own identity so CI triggers correctly. (Renovate finds the committed config and skips onboarding.)
  3. [admin] Disable "Dependabot security updates" in Settings → Code security (keep Dependabot alerts on — Renovate reads them). This avoids duplicate CVE PRs now that Renovate owns security.
  4. Close the orphaned Dependabot PR chore(deps): bump the lockfile-minor-patch group with 5 updates #758 — Renovate will track those updates on the dashboard.

Alternative to step 2 if the org would rather not install a third-party app: a self-hosted renovatebot/github-action on a cron with a token secret. I can add that workflow instead — say the word. (It needs an admin to add the secret either way.)

— Claude on behalf of Cail

🤖 Generated with Claude Code

Replace Dependabot with Renovate to end the per-PR merge toil. Renovate
gives a single Dependency Dashboard issue plus branch automerge: routine
uv.lock updates land silently on green CI with no PR, while majors and
pyproject-floor changes stay human-gated.

Supply-chain posture carried over from dependabot.yml and sharpened:
- rangeStrategy update-lockfile — routine updates touch only uv.lock, never
  the abstract pyproject floors (the old "floor bumps need sign-off" rule,
  now structural).
- 14-day cooldown (30 for majors), as before; OSV alerts add
  malicious-package detection on top.
- CVE fixes get a short 3-day window then automerge on green CI.
- GitHub Actions stay SHA-pinned (helpers:pinGitHubActionDigests).

Activation needs one org-admin step (install the Renovate app); see the PR
description.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant