Skip to content

chore(deps): switch Dependabot to security-only (suppress version bumps)#713

Merged
shivasurya merged 1 commit into
mainfrom
shiva/dependabot-security-only
May 22, 2026
Merged

chore(deps): switch Dependabot to security-only (suppress version bumps)#713
shivasurya merged 1 commit into
mainfrom
shiva/dependabot-security-only

Conversation

@shivasurya
Copy link
Copy Markdown
Owner

Summary

Switches .github/dependabot.yml from "weekly version-bump PRs" to "security-update PRs only." Implemented via open-pull-requests-limit: 0 on every ecosystem block, the GitHub-documented way to keep an ecosystem registered for security updates while suppressing routine version bumps.

Why

Supply-chain attacks via npm / PyPI / Go modules have become routine: chained typosquats, post-install scripts, account takeovers of maintainer accounts. A constant stream of "bump X from 1.2.3 to 1.2.4" PRs produces alert fatigue and tempts a quick rubber-stamp on a malicious release. Reserving Dependabot's noise budget for actual advisories keeps reviewer attention where it matters.

What still works

  • Dependabot security updates continue to open PRs when a tracked manifest contains a dependency with a published advisory. Security update PRs are NOT subject to the open-pull-requests-limit knob (per the GitHub docs).
  • The seven-manifest allowlist stays. It scopes BOTH version updates AND security updates, so the deliberately vulnerable fixtures under rules/** and sast-engine/test-fixtures/** are still ignored.
  • Existing labels and chore(deps) commit prefix carry over to security update PRs. New security label added across all blocks so the PRs that do open are immediately filterable.

Severity filtering (your "high and critical only" ask)

open-pull-requests-limit can't filter by CVE severity. The supported mechanism is auto-triage rules under Settings → Security → Dependabot → Auto-triage rules:

  1. Add a rule with severity <= medium, action = "Auto-dismiss alert", reason = tolerable_risk (or inaccurate).
  2. Optionally a second rule limiting auto-update PRs to severity >= high.

That dismisses the underlying alerts so they also vanish from the Security tab. The file header documents this.

Follow-up after merge (planned in the next batch)

Close the in-flight dependabot version-bump PRs (#707#711 and any that landed since this morning). Those were queued before this config took effect; they would otherwise sit open and contradict the new posture.

Test plan

  • YAML syntax valid.
  • All 8 blocks have open-pull-requests-limit: 0.
  • groups block removed where present (no-op with limit 0; removed for clarity).
  • Allowlist of seven real manifest locations unchanged.
  • After merge: confirm via the Dependabot tab that no new version-update PRs are opened, and that a synthetic security update (e.g., next published CVE on a tracked dep) still produces a PR.

Routine "bump axios from 1.2.3 to 1.2.4" PRs are out, security update
PRs for CVEs are in. Implemented via open-pull-requests-limit: 0 on
every ecosystem block, which the GitHub docs document as the
supported way to keep an ecosystem registered for security updates
while suppressing version-update PRs.

Why now: supply-chain attacks via npm / PyPI / Go modules have become
routine (chained typosquats, post-install scripts, account takeovers
of maintainer accounts). A constant stream of merge-this-patch PRs
produces alert fatigue and tempts a quick rubber-stamp on a malicious
release. Reserving Dependabot's noise budget for actual advisories
keeps reviewer attention where it matters.

What still works:
- Dependabot security updates open PRs when a tracked manifest hits a
  published advisory. Not subject to the open-pr limit.
- The seven-manifest allowlist still scopes BOTH version AND security
  updates, so the deliberately vulnerable fixtures under rules/** and
  sast-engine/test-fixtures/** stay untouched.
- Existing labels and chore(deps) prefix carry over to security PRs.
- New "security" label added across all blocks so the PRs that DO open
  are immediately filterable.

Severity filtering (the user's "high and critical only" ask):
open-pull-requests-limit can't filter by severity. To suppress
medium/low security PRs and dismiss the underlying alerts, configure
auto-triage rules under Settings -> Security -> Dependabot ->
Auto-triage rules. Documented in the file header.
@shivasurya shivasurya added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code chore labels May 22, 2026
@shivasurya shivasurya self-assigned this May 22, 2026
@safedep
Copy link
Copy Markdown

safedep Bot commented May 22, 2026

SafeDep Report Summary

Green Malicious Packages Badge Green Vulnerable Packages Badge Green Risky License Badge

No dependency changes detected. Nothing to scan.

View complete scan results →

This report is generated by SafeDep Github App

@github-actions
Copy link
Copy Markdown

Code Pathfinder Security Scan

Pass Critical High Medium Low Info

No security issues detected.

Metric Value
Files Scanned 1
Rules 205

Powered by Code Pathfinder

@code-pathfinder
Copy link
Copy Markdown

Pathfinder Report

No security findings on the changed files. This pull request is clean.

View report on the dashboard


Powered by Code Pathfinder.

@shivasurya shivasurya merged commit 181f52c into main May 22, 2026
5 checks passed
@shivasurya shivasurya deleted the shiva/dependabot-security-only branch May 22, 2026 01:50
This was referenced May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant