> For clean Markdown of this page, append .md to its URL. For the complete documentation index, see https://www.superagent.sh/llms.txt.


Test known dependency vulnerabilities in your application and verify fixes on Dependabot and Renovate pull requests.

# Dependency Validation

Dependency Validation adds a **Superagent · Dependency Validation** GitHub check to
Dependabot and Renovate security pull requests. It uses the repository red-team
runtime to investigate whether a known dependency vulnerability is exploitable
in your application and whether the proposed update fixes the demonstrated attack.
Dependabot or Renovate owns dependency resolution, branches, and pull requests.

For compatibility with existing branch protection rules, Superagent also publishes
the same result under the former **Superagent · Dependency Red Team** check name.
Repository owners can update required checks to **Superagent · Dependency Validation**.

## Enable Dependency Validation

In repository settings, an organization owner must open **Dependency scans** and enable
**Verify vulnerable dependency updates**. Set **Target branches** to restrict the
PR's base branch, and optionally set **Maximum runs per pull request**. No branch
selection scans all branches; an empty run limit allows unlimited runs.
Enabling authorizes running application and dependency code with the repository
environment; a repository YAML file or a legacy updater schedule does not grant
this consent. The check is off by default. When it handles an eligible security
update PR, Superagent skips the regular PR security and
[Supply chain scans](https://www.superagent.sh/docs/products/pr-scanning/supply-chain-scanning).

Configure application setup instructions in the repository and required variables
in its **Environment** tab. The same environment configuration is used by
repository red-teaming. Supply credentials for an isolated test environment;
production systems are outside the local exploit target.

## What runs

1. GitHub-authenticated Dependabot or Renovate PR activity triggers the check.
   Before execution, every commit introduced by the pinned update must have a
   verified signature attributable to the expected bot. Human commits, spoofed
   authors, unsigned commits and incomplete provenance withhold execution with
   an inconclusive result. This is rechecked before repository variables are loaded.
2. GitHub dependency review identifies affected dependencies removed by the update,
   including transitive dependencies. When dependency review is unavailable,
   Superagent correlates native Dependabot alerts with supported dependency changes.
   The GitHub App needs **Dependabot alerts: Read** for this fallback.
3. The repository runner checks out the exact PR base and head commits. It starts
   the base application with its existing dependencies and attempts to reproduce
   each supplied advisory through the application's actual interfaces.
4. For a demonstrated base exploit, it repeats the reproduction against the PR
   head and checks that the updated application's relevant functionality still works.
5. A fresh agent session independently verifies material claims. The result is
   persisted before a durable publication workflow posts the check and PR comment.

Routine version updates with no identified vulnerability do not launch red-teaming.
Unresolved dependency or advisory context is reported as incomplete coverage.
The agent may install the required runtime and application dependencies inside
the sandbox. Application setup failures are recorded as investigation blockers.

## Results

| Evidence | GitHub check |
| --- | --- |
| Base exploit confirmed; healthy update blocks the same reproduction | Success — fix verified |
| The vulnerability remains exploitable in the update | Failure — vulnerability persists |
| Affirmative evidence establishes that a necessary exploit condition is absent | Success — non-applicability established |
| Missing setup, failed verification, or insufficient evidence | Neutral — inconclusive |

The PR comment summarizes application impact, recommended priority, and fix
status. The linked report contains reproduction commands, observed results,
and limitations.
An unsuccessful exploit attempt does not prove that the update is unnecessary.
A package-only demonstration does not establish application exploitability, and
an application that fails to start does not establish a successful fix.

Results apply to the tested commits and environment. New commits supersede older
runs. A closed PR or a changed base invalidates the comparison. Re-run the check
from GitHub after changing application environment configuration.

## Usage and migration

Private assessments retain the former dependency-update rate of **5 credits**
per investigation; public repository investigations are free. No investigation
is started when the PR contains no identified vulnerable dependency change.

Dependency Validation replaces scheduled Secure Dependency Updates. Existing
updater settings leave this check disabled until an organization owner opts in.
Superagent no longer runs
Dependabot itself, opens update PRs, or offers manual updater runs. Historical
runs remain readable through the [legacy API](https://www.superagent.sh/docs/api/dependency-updates).
The former creation endpoint returns `410 Gone`; the MCP tool
`trigger_dependency_updates` has been removed.

Routine dependency updates and other PRs retain their configured PR security and
supply-chain checks. Dependency Validation handles known advisory exploitability
and fix verification without running those two checks in parallel. Contributor
scans remain independent.

---
Source: https://www.superagent.sh/docs/products/dependency-validation
Index: https://www.superagent.sh/llms.txt
