OpenHands / OpenHands/extensions

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

Open
#132 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
148
Forks
90
Avg merge
1d 17h
Merged PRs (30d)
36

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the OpenHands/extensions layout and the conventions for GitHub Actions, then resolve the open questions about initial npm/PyPI support, audit data sources, and risk thresholds. The work is done when the extension and scheduled or manually dispatched action audit direct and transitive dependencies, attach reports to safe PRs, and create issues instead of PRs for blocked upgrades.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
ci-cd, security, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.