dependency-cve-gate

Implements a differential osv-scanner dependency CVE gate with expiring ignore policies for pull requests.

1|Updated Jun 9, 2026
One-click install
npx skills add https://github.com/VilnaCRM-Org/claude-plugins --skill dependency-cve-gate-vilnacrm-org
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dependency-cve-gate
Source: https://github.com/VilnaCRM-Org/claude-plugins/tree/main/plugins/react-frontend-sdlc/skills/dependency-cve-gate
Command: npx skills add https://github.com/VilnaCRM-Org/claude-plugins --skill dependency-cve-gate-vilnacrm-org

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Dependency vulnerability gates that scan the whole lockfile fail on the pre-existing backlog, turning unrelated pull requests red and training reviewers to ignore security checks. This Skill explains how to design, operate, and port a differential CVE gate that fails only on advisories a change itself introduces. ## Core Features & Use Cases - Differential blocking scan: Compares the base branch lockfile against the head's and fails only on newly introduced advisories, while a separate advisory census reports the whole backlog non-blockingly. - Strict ignore policy: Enforces a single [[IgnoredVulns]] construct in config/osv-scanner.toml where every entry requires an advisory id, a reason, and a validated ignoreUntil calendar date; expired entries fail the gate. - Bypass-resistant intersection rule: Runs the scan under the intersection of base-ref and working-tree ignores so a vulnerable dependency cannot ship together with its own ignore entry. - Use Case: A pull request fails the dependency-CVE workflow on a GHSA reported against a bumped package. Use this Skill to decide whether to upgrade the dependency or write a properly formatted ignore entry with a real expiry date, and to understand why the entry must land before the dependency. ## Quick Start Ask the assistant to diagnose why the dependency-CVE gate failed on my pull request and draft a valid osv-scanner ignore entry for the reported advisory.

Frequently Asked Questions about dependency-cve-gate

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix a failing dependency CVE gate on a pull request?▼

A differential CVE gate fails only on advisories your change introduces, so first check whether the flagged dependency was added or bumped by your pull request. Upgrade the dependency if possible; otherwise add an ignore entry with the advisory id, a reason, and an ignoreUntil date, landed before the dependency change.

How do I write an osv-scanner ignore entry in osv-scanner.toml?▼

Use a single [[IgnoredVulns]] table with three mandatory fields: the advisory id exactly as the scanner reports it, a reason explaining acceptance and what unblocks the fix, and an ignoreUntil re-triage date as a bare TOML local date. All other tables and top-level keys are rejected.

Why does osv-scanner exit with code 127 on a valid config?▼

Exit 127 occurs when the rendered effective policy is invalid TOML, typically because a reason containing a double quote was emitted unescaped. Values must be escaped when the effective policy is rendered so the scanner receives parseable TOML.

Why use a differential scan instead of scanning the whole lockfile?▼

An absolute baseline fails on the existing backlog from day one, and new advisories against untouched code keep unrelated pull requests red, teaching reviewers to ignore the check. Differential scanning points authors at the risk their own dependency change introduced, while a separate advisory census tracks the backlog.

Can I extend an ignoreUntil date to keep the gate green?▼

Extending an expiry takes effect immediately because the gate reads ignoreUntil from the working tree, so it is not blocked by the intersection rule. Treat a later ignoreUntil like a new entry requiring review scrutiny; upgrading the dependency remains the correct fix.

When should I not use this dependency CVE gate approach?▼

This gate covers dependency vulnerability scanning only, not license policy, lockfile-provenance checks, or application-code SAST. It also does not apply to repository shapes without a wired dependency-CVE workflow, such as a plain React SPA or a Storybook-first component library.