Skip to content

Create dependency-upgrader: secure dependency update extension with pre-PR agent audit #132

@neubig

Description

@neubig

Problem

We should build a dependency-upgrader extension in OpenHands/extensions that can identify newly available dependency versions, but must not open an upgrade PR until an agent-assisted security audit has been completed.

The goal is to get Dependabot-like ergonomics with stronger supply-chain protections.

What we should build

A dependency-upgrader extension plus a GitHub Action that:

  1. Detects when newer dependency versions are available.
  2. Resolves the actual dependency graph for the proposed upgrade from the package manager / registry source of truth.
  3. Runs an agent-assisted security audit on the candidate package and its newly introduced transitive dependencies.
  4. Opens a PR only when the upgrade is below the configured risk threshold.
  5. Creates an issue (instead of a PR) when the upgrade is blocked by security findings.

Security audit requirements

The pre-PR audit should check for both known and emerging supply-chain risk, including:

  • Known CVEs / advisory matches
  • Evidence of active exploitation
  • Zero-day indicators / recent public exploit reports
  • Suspicious maintainer, publisher, or ownership changes
  • Newly introduced transitive dependencies and dependency-graph deltas
  • Malicious or unusual install / build / postinstall behavior
  • Native binaries, obfuscated code, unexpected network activity, or other high-risk signals

Expected workflow

  • Run on a schedule and/or manual dispatch.
  • Find available upgrades for supported ecosystems.
  • For each candidate upgrade, generate a security audit report before any PR is opened.
  • If risk is acceptable, open a PR with the audit summary attached.
  • If risk is high or unclear, do not open the PR; instead open an issue with the findings and rationale.

Acceptance criteria

  • A new dependency-upgrader extension exists in this repo.
  • The extension includes a GitHub Action that checks for available dependency updates.
  • Before opening a PR, the action performs an agent-assisted audit of the direct dependency and its resolved transitive graph.
  • Audit output explicitly includes CVE results and zero-day / active-exploit signals.
  • Safe updates open PRs with a human-readable audit summary.
  • Risky updates are blocked from opening PRs and are surfaced as issues instead.
  • The risk decision and supporting evidence are visible to maintainers.

Open questions

  • Which ecosystems should we support first (likely npm and PyPI)?
  • Which data sources should back CVE, advisory, reputation, and exploit-signal checks?
  • How should we define the threshold for allow, review, and block?
  • How should we communicate uncertainty when the agent sees possible zero-day indicators but low-confidence evidence?

This issue was updated by an AI assistant (OpenHands) on behalf of the user.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions