rawlings/Autoremediator

Agentic CVE remediation for Node.js dependencies. Runs version-bump remediation for scanner output or a single CVE ID, with LLM patch-generation fallback when no safe version exists, and integrates with MCP/OpenAPI security automation workflows.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit May 16, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: rawlings/autoremediator@3becd8d335d9c7f8bdad564e30bd2fbdb0006ae4 # v0.15.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
scan-filePath to scanner output file (npm audit --json, pnpm audit --json, yarn audit --json, bun audit --json, or SARIF). Mutually exclusive with cve-id. Mutually exclusive with audit. Required if cve-id and audit are not set. no
auditRun a package-manager-native audit command instead of reading scan-file. Mutually exclusive with scan-file and cve-id. Uses npm directly and enables Corepack shims for pnpm and yarn audit mode. nofalse
cve-idSingle CVE ID to remediate directly (e.g. CVE-2021-23337). Mutually exclusive with scan-file and audit. Required if scan-file and audit are not set. no
formatScanner input format. One of: auto, npm-audit, yarn-audit, sarif. Ignored when cve-id is set. noauto
cwdTarget project directory containing package.json and lockfile. Defaults to repository root. no.
package-managerPackage manager to use for installs: npm, pnpm, yarn, bun, or deno. Auto-detected from lockfile if not set. no
dry-runPlan changes only — do not mutate files or run installs.nofalse
run-testsRun the package-manager test command to validate changes after applying. nofalse
ciEnable CI mode — exit non-zero when any CVE is unresolved after remediation attempts. Ignored when cve-id is set. nofalse
summary-fileWrite a machine-readable scan summary JSON to this path. Useful for downstream steps and artifact upload. Ignored when cve-id is set. no
policyPath to a policy file (.github/autoremediator.yml) that controls upgrade constraints, allow/deny lists, and remediation behavior. no
llm-providerLLM provider for patch-generation fallback when no safe version exists. One of: remote, local. local runs deterministic mode and does not require remote credentials. nolocal
node-versionNode.js version to use. Must be 24 or higher.no24
tokenGitHub token for PR creation. Defaults to github.token.no${{ github.token }}
create-pull-requestOpen a pull request with remediated changes.nofalse
pull-request-branchBranch name prefix for the fix branch.no
pull-request-titleTitle for the pull request.no
pull-request-commit-messageCommit message for remediation commits.no
update-outdatedRun update-outdated mode: bump all outdated npm packages to their latest versions without requiring a CVE ID. Cannot be combined with cve-id or scan-file. nofalse
include-transitiveInclude indirect/transitive dependencies in the outdated check. Only applicable when update-outdated is true. nofalse
containment-modeHalt the pipeline when any result disposition is not auto-apply. Use with dry-run to enforce hold-for-approval gates. nofalse
simulation-modePopulate planned mutation metadata and rebuttal findings without applying any changes. Requires dry-run. Valid for cve-id and scan modes. nofalse
offlineSkip all network calls to intelligence sources (OSV, GitHub Advisory, NVD, CISA-KEV, EPSS). Version-bump remediation still works if the npm registry is accessible. nofalse
intelligence-snapshotPath to a local JSON file containing pre-fetched CVE intelligence, keyed by CVE ID. Used with offline: true to provide CVE data without network access.
namedescription
summary-filePath to the generated summary JSON file (if summary-file input was set).
pull-request-urlURL of the created pull request, if any.