autoremediator 0.21.0 → 0.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -37
- package/dist/api/change-request/index.d.ts.map +1 -1
- package/dist/api/change-request/index.js +404 -0
- package/dist/api/change-request/index.js.map +1 -0
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +41 -0
- package/dist/api/context.js.map +1 -0
- package/dist/api/contracts.js +2 -0
- package/dist/api/contracts.js.map +1 -0
- package/dist/api/delta-scan/index.js +5 -0
- package/dist/api/delta-scan/index.js.map +1 -0
- package/dist/api/evaluate/index.js +5 -0
- package/dist/api/evaluate/index.js.map +1 -0
- package/dist/api/index.js +16 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/jobs/index.js +54 -0
- package/dist/api/jobs/index.js.map +1 -0
- package/dist/api/options-schema.js +367 -0
- package/dist/api/options-schema.js.map +1 -0
- package/dist/api/patches/helpers.d.ts.map +1 -1
- package/dist/api/patches/helpers.js +71 -0
- package/dist/api/patches/helpers.js.map +1 -0
- package/dist/api/patches/index.js +4 -0
- package/dist/api/patches/index.js.map +1 -0
- package/dist/api/patches/inspection.d.ts.map +1 -1
- package/dist/api/patches/inspection.js +66 -0
- package/dist/api/patches/inspection.js.map +1 -0
- package/dist/api/patches/reconcile.d.ts.map +1 -1
- package/dist/api/patches/reconcile.js +245 -0
- package/dist/api/patches/reconcile.js.map +1 -0
- package/dist/api/patches/validation.d.ts.map +1 -1
- package/dist/api/patches/validation.js +105 -0
- package/dist/api/patches/validation.js.map +1 -0
- package/dist/api/portfolio/index.d.ts.map +1 -1
- package/dist/api/portfolio/index.js +127 -0
- package/dist/api/portfolio/index.js.map +1 -0
- package/dist/api/portfolio/risk-score.js +32 -0
- package/dist/api/portfolio/risk-score.js.map +1 -0
- package/dist/api/reachability/index.d.ts.map +1 -1
- package/dist/api/reachability/index.js +9 -0
- package/dist/api/reachability/index.js.map +1 -0
- package/dist/api/remediate/index.js +97 -0
- package/dist/api/remediate/index.js.map +1 -0
- package/dist/api/remediate/validators.js +11 -0
- package/dist/api/remediate/validators.js.map +1 -0
- package/dist/api/remediate-from-scan/index.d.ts.map +1 -1
- package/dist/api/remediate-from-scan/index.js +132 -0
- package/dist/api/remediate-from-scan/index.js.map +1 -0
- package/dist/api/remediate-from-scan/report-metrics.js +21 -0
- package/dist/api/remediate-from-scan/report-metrics.js.map +1 -0
- package/dist/api/remediate.evidence.d.ts +1 -1
- package/dist/api/remediate.evidence.d.ts.map +1 -1
- package/dist/api/remediate.evidence.js +109 -0
- package/dist/api/remediate.evidence.js.map +1 -0
- package/dist/api/reporting.js +351 -0
- package/dist/api/reporting.js.map +1 -0
- package/dist/api/sarif.js +67 -0
- package/dist/api/sarif.js.map +1 -0
- package/dist/api/scan-execution.d.ts +1 -2
- package/dist/api/scan-execution.d.ts.map +1 -1
- package/dist/api/scan-execution.js +48 -0
- package/dist/api/scan-execution.js.map +1 -0
- package/dist/api/scan-outcome.js +41 -0
- package/dist/api/scan-outcome.js.map +1 -0
- package/dist/api/update-outdated/index.d.ts.map +1 -1
- package/dist/api/update-outdated/index.js +255 -0
- package/dist/api/update-outdated/index.js.map +1 -0
- package/dist/api/vex/index.d.ts.map +1 -1
- package/dist/api/vex/index.js +138 -0
- package/dist/api/vex/index.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +18 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output.js +12 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +294 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/runners.d.ts +1 -1
- package/dist/cli/runners.d.ts.map +1 -1
- package/dist/cli/runners.js +622 -0
- package/dist/cli/runners.js.map +1 -0
- package/dist/cli/triage.d.ts.map +1 -1
- package/dist/cli/triage.js +183 -0
- package/dist/cli/triage.js.map +1 -0
- package/dist/cli/types.js +4 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/validators.js +33 -0
- package/dist/cli/validators.js.map +1 -0
- package/dist/intelligence/sources/cisa-kev.d.ts.map +1 -1
- package/dist/intelligence/sources/cisa-kev.js +38 -0
- package/dist/intelligence/sources/cisa-kev.js.map +1 -0
- package/dist/intelligence/sources/epss.d.ts.map +1 -1
- package/dist/intelligence/sources/epss.js +33 -0
- package/dist/intelligence/sources/epss.js.map +1 -0
- package/dist/intelligence/sources/github-advisory.d.ts.map +1 -1
- package/dist/intelligence/sources/github-advisory.js +109 -0
- package/dist/intelligence/sources/github-advisory.js.map +1 -0
- package/dist/intelligence/sources/nvd.d.ts.map +1 -1
- package/dist/intelligence/sources/nvd.js +64 -0
- package/dist/intelligence/sources/nvd.js.map +1 -0
- package/dist/intelligence/sources/osv.d.ts.map +1 -1
- package/dist/intelligence/sources/osv.js +184 -0
- package/dist/intelligence/sources/osv.js.map +1 -0
- package/dist/intelligence/sources/registry.d.ts.map +1 -1
- package/dist/intelligence/sources/registry.js +303 -0
- package/dist/intelligence/sources/registry.js.map +1 -0
- package/dist/intelligence/sources/snapshot.d.ts.map +1 -1
- package/dist/intelligence/sources/snapshot.js +109 -0
- package/dist/intelligence/sources/snapshot.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +429 -479
- package/dist/mcp/server.js.map +1 -0
- package/dist/openapi/handlers/index.d.ts +1 -1
- package/dist/openapi/handlers/index.d.ts.map +1 -1
- package/dist/openapi/handlers/index.js +53 -0
- package/dist/openapi/handlers/index.js.map +1 -0
- package/dist/openapi/handlers/routes.d.ts +1 -1
- package/dist/openapi/handlers/routes.d.ts.map +1 -1
- package/dist/openapi/handlers/routes.js +122 -0
- package/dist/openapi/handlers/routes.js.map +1 -0
- package/dist/openapi/handlers/validators.d.ts +1 -1
- package/dist/openapi/handlers/validators.d.ts.map +1 -1
- package/dist/openapi/handlers/validators.js +45 -0
- package/dist/openapi/handlers/validators.js.map +1 -0
- package/dist/openapi/http-utils.d.ts +1 -1
- package/dist/openapi/http-utils.d.ts.map +1 -1
- package/dist/openapi/http-utils.js +99 -0
- package/dist/openapi/http-utils.js.map +1 -0
- package/dist/openapi/path-guard.d.ts.map +1 -1
- package/dist/openapi/path-guard.js +79 -0
- package/dist/openapi/path-guard.js.map +1 -0
- package/dist/openapi/rbac.d.ts.map +1 -1
- package/dist/openapi/rbac.js +150 -0
- package/dist/openapi/rbac.js.map +1 -0
- package/dist/openapi/server.d.ts.map +1 -1
- package/dist/openapi/server.js +51 -1267
- package/dist/openapi/server.js.map +1 -0
- package/dist/openapi/spec/index.d.ts +3 -3
- package/dist/openapi/spec/index.js +24 -0
- package/dist/openapi/spec/index.js.map +1 -0
- package/dist/openapi/spec/paths.d.ts +3 -3
- package/dist/openapi/spec/paths.d.ts.map +1 -1
- package/dist/openapi/spec/paths.js +623 -0
- package/dist/openapi/spec/paths.js.map +1 -0
- package/dist/openapi/spec/schemas.js +32 -0
- package/dist/openapi/spec/schemas.js.map +1 -0
- package/dist/platform/config.js +18 -0
- package/dist/platform/config.js.map +1 -0
- package/dist/platform/entrypoint.js +19 -0
- package/dist/platform/entrypoint.js.map +1 -0
- package/dist/platform/escalation.js +18 -0
- package/dist/platform/escalation.js.map +1 -0
- package/dist/platform/evidence.d.ts.map +1 -1
- package/dist/platform/evidence.js +40 -0
- package/dist/platform/evidence.js.map +1 -0
- package/dist/platform/http-client.d.ts.map +1 -1
- package/dist/platform/http-client.js +107 -0
- package/dist/platform/http-client.js.map +1 -0
- package/dist/platform/idempotency.d.ts.map +1 -1
- package/dist/platform/idempotency.js +49 -0
- package/dist/platform/idempotency.js.map +1 -0
- package/dist/platform/jobs.d.ts.map +1 -1
- package/dist/platform/jobs.js +154 -0
- package/dist/platform/jobs.js.map +1 -0
- package/dist/platform/package-manager/index.d.ts.map +1 -1
- package/dist/platform/package-manager/index.js +213 -0
- package/dist/platform/package-manager/index.js.map +1 -0
- package/dist/platform/package-manager/list-parser.d.ts.map +1 -1
- package/dist/platform/package-manager/list-parser.js +141 -0
- package/dist/platform/package-manager/list-parser.js.map +1 -0
- package/dist/platform/patch-generator.js +2 -0
- package/dist/platform/patch-generator.js.map +1 -0
- package/dist/platform/policy.d.ts +5 -0
- package/dist/platform/policy.d.ts.map +1 -1
- package/dist/platform/policy.js +361 -0
- package/dist/platform/policy.js.map +1 -0
- package/dist/platform/repo-lock.d.ts.map +1 -1
- package/dist/platform/repo-lock.js +42 -0
- package/dist/platform/repo-lock.js.map +1 -0
- package/dist/platform/rollback.d.ts.map +1 -1
- package/dist/platform/rollback.js +397 -0
- package/dist/platform/rollback.js.map +1 -0
- package/dist/platform/safe-exec-command.d.ts +8 -0
- package/dist/platform/safe-exec-command.d.ts.map +1 -0
- package/dist/platform/safe-exec-command.js +13 -0
- package/dist/platform/safe-exec-command.js.map +1 -0
- package/dist/platform/safe-exec.d.ts.map +1 -1
- package/dist/platform/safe-exec.js +66 -0
- package/dist/platform/safe-exec.js.map +1 -0
- package/dist/platform/supply-chain.js +84 -0
- package/dist/platform/supply-chain.js.map +1 -0
- package/dist/platform/timeouts.js +3 -0
- package/dist/platform/timeouts.js.map +1 -0
- package/dist/platform/trim.d.ts +7 -0
- package/dist/platform/trim.d.ts.map +1 -0
- package/dist/platform/trim.js +19 -0
- package/dist/platform/trim.js.map +1 -0
- package/dist/platform/types.js +2 -0
- package/dist/platform/types.js.map +1 -0
- package/dist/platform/workspace.d.ts.map +1 -1
- package/dist/platform/workspace.js +181 -0
- package/dist/platform/workspace.js.map +1 -0
- package/dist/remediation/evaluate-package.d.ts.map +1 -1
- package/dist/remediation/evaluate-package.js +142 -0
- package/dist/remediation/evaluate-package.js.map +1 -0
- package/dist/remediation/local/disposition.d.ts +1 -1
- package/dist/remediation/local/disposition.d.ts.map +1 -1
- package/dist/remediation/local/disposition.js +99 -0
- package/dist/remediation/local/disposition.js.map +1 -0
- package/dist/remediation/local/fallback.d.ts.map +1 -1
- package/dist/remediation/local/fallback.js +129 -0
- package/dist/remediation/local/fallback.js.map +1 -0
- package/dist/remediation/local/index.js +2 -0
- package/dist/remediation/local/index.js.map +1 -0
- package/dist/remediation/local/options.d.ts.map +1 -1
- package/dist/remediation/local/options.js +54 -0
- package/dist/remediation/local/options.js.map +1 -0
- package/dist/remediation/local/primary-strategy.d.ts.map +1 -1
- package/dist/remediation/local/primary-strategy.js +170 -0
- package/dist/remediation/local/primary-strategy.js.map +1 -0
- package/dist/remediation/local/run.d.ts.map +1 -1
- package/dist/remediation/local/run.js +234 -0
- package/dist/remediation/local/run.js.map +1 -0
- package/dist/remediation/local/sbom.js +36 -0
- package/dist/remediation/local/sbom.js.map +1 -0
- package/dist/remediation/local/secops-preflight.d.ts.map +1 -1
- package/dist/remediation/local/secops-preflight.js +37 -0
- package/dist/remediation/local/secops-preflight.js.map +1 -0
- package/dist/remediation/local/summary.js +7 -0
- package/dist/remediation/local/summary.js.map +1 -0
- package/dist/remediation/local/vulnerability-match.d.ts.map +1 -1
- package/dist/remediation/local/vulnerability-match.js +31 -0
- package/dist/remediation/local/vulnerability-match.js.map +1 -0
- package/dist/remediation/patch/diff.d.ts.map +1 -1
- package/dist/remediation/patch/diff.js +204 -0
- package/dist/remediation/patch/diff.js.map +1 -0
- package/dist/remediation/patch/generate.d.ts +1 -1
- package/dist/remediation/patch/generate.d.ts.map +1 -1
- package/dist/remediation/patch/generate.js +72 -0
- package/dist/remediation/patch/generate.js.map +1 -0
- package/dist/remediation/patch/llm-generator.d.ts.map +1 -1
- package/dist/remediation/patch/llm-generator.js +41 -0
- package/dist/remediation/patch/llm-generator.js.map +1 -0
- package/dist/remediation/patch/model.js +37 -0
- package/dist/remediation/patch/model.js.map +1 -0
- package/dist/remediation/patch/prompt.js +22 -0
- package/dist/remediation/patch/prompt.js.map +1 -0
- package/dist/remediation/patch/resolve.d.ts.map +1 -1
- package/dist/remediation/patch/resolve.js +15 -0
- package/dist/remediation/patch/resolve.js.map +1 -0
- package/dist/remediation/patch/syntax.js +50 -0
- package/dist/remediation/patch/syntax.js.map +1 -0
- package/dist/remediation/proof-of-fix/runner.d.ts.map +1 -1
- package/dist/remediation/proof-of-fix/runner.js +359 -0
- package/dist/remediation/proof-of-fix/runner.js.map +1 -0
- package/dist/remediation/refactor/call-site-finder.d.ts.map +1 -1
- package/dist/remediation/refactor/call-site-finder.js +286 -0
- package/dist/remediation/refactor/call-site-finder.js.map +1 -0
- package/dist/remediation/refactor/codemods.d.ts.map +1 -1
- package/dist/remediation/refactor/codemods.js +540 -0
- package/dist/remediation/refactor/codemods.js.map +1 -0
- package/dist/remediation/strategies/patch-utils.d.ts.map +1 -1
- package/dist/remediation/strategies/patch-utils.js +195 -0
- package/dist/remediation/strategies/patch-utils.js.map +1 -0
- package/dist/remediation/tools/apply-package-override/helpers.d.ts.map +1 -1
- package/dist/remediation/tools/apply-package-override/helpers.js +134 -0
- package/dist/remediation/tools/apply-package-override/helpers.js.map +1 -0
- package/dist/remediation/tools/apply-package-override/index.d.ts.map +1 -1
- package/dist/remediation/tools/apply-package-override/index.js +517 -0
- package/dist/remediation/tools/apply-package-override/index.js.map +1 -0
- package/dist/remediation/tools/apply-patch-file/helpers.d.ts.map +1 -1
- package/dist/remediation/tools/apply-patch-file/helpers.js +246 -0
- package/dist/remediation/tools/apply-patch-file/helpers.js.map +1 -0
- package/dist/remediation/tools/apply-patch-file/index.d.ts.map +1 -1
- package/dist/remediation/tools/apply-patch-file/index.js +562 -0
- package/dist/remediation/tools/apply-patch-file/index.js.map +1 -0
- package/dist/remediation/tools/apply-version-bump.d.ts.map +1 -1
- package/dist/remediation/tools/apply-version-bump.js +425 -0
- package/dist/remediation/tools/apply-version-bump.js.map +1 -0
- package/dist/remediation/tools/check-exploit-signal.d.ts.map +1 -1
- package/dist/remediation/tools/check-exploit-signal.js +81 -0
- package/dist/remediation/tools/check-exploit-signal.js.map +1 -0
- package/dist/remediation/tools/check-inventory.d.ts.map +1 -1
- package/dist/remediation/tools/check-inventory.js +132 -0
- package/dist/remediation/tools/check-inventory.js.map +1 -0
- package/dist/remediation/tools/check-reachability.d.ts.map +1 -1
- package/dist/remediation/tools/check-reachability.js +464 -0
- package/dist/remediation/tools/check-reachability.js.map +1 -0
- package/dist/remediation/tools/fetch-package-source.d.ts.map +1 -1
- package/dist/remediation/tools/fetch-package-source.js +134 -0
- package/dist/remediation/tools/fetch-package-source.js.map +1 -0
- package/dist/remediation/tools/tool-compat.js +8 -0
- package/dist/remediation/tools/tool-compat.js.map +1 -0
- package/dist/scanner/adapters/npm-audit.d.ts.map +1 -1
- package/dist/scanner/adapters/npm-audit.js +44 -0
- package/dist/scanner/adapters/npm-audit.js.map +1 -0
- package/dist/scanner/adapters/sarif.d.ts.map +1 -1
- package/dist/scanner/adapters/sarif.js +44 -0
- package/dist/scanner/adapters/sarif.js.map +1 -0
- package/dist/scanner/adapters/yarn-audit.d.ts.map +1 -1
- package/dist/scanner/adapters/yarn-audit.js +58 -0
- package/dist/scanner/adapters/yarn-audit.js.map +1 -0
- package/dist/scanner/delta-scan.d.ts.map +1 -1
- package/dist/scanner/delta-scan.js +291 -0
- package/dist/scanner/delta-scan.js.map +1 -0
- package/dist/scanner/index.js +3 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/lockfile-diff.d.ts.map +1 -1
- package/dist/scanner/lockfile-diff.js +181 -0
- package/dist/scanner/lockfile-diff.js.map +1 -0
- package/dist/scanner/parse-input.d.ts +1 -1
- package/dist/scanner/parse-input.d.ts.map +1 -1
- package/dist/scanner/parse-input.js +98 -0
- package/dist/scanner/parse-input.js.map +1 -0
- package/dist/scanner/unique-cve-ids.js +4 -0
- package/dist/scanner/unique-cve-ids.js.map +1 -0
- package/dist/version.js +11 -0
- package/dist/version.js.map +1 -0
- package/llms.txt +7 -4
- package/package.json +8 -9
- package/dist/chunk-Z3G2MQPR.js +0 -10191
- package/dist/cli.js +0 -1196
- package/dist/index.js +0 -10030
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,54 +1,88 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">Autoremediator</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center"><strong>Your scanner finds vulnerabilities. Autoremediator fixes them.</strong></p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/autoremediator"><img alt="npm version" src="https://img.shields.io/npm/v/autoremediator?color=cb3837&logo=npm"></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/autoremediator"><img alt="npm downloads" src="https://img.shields.io/npm/dm/autoremediator?logo=npm"></a>
|
|
8
|
+
<a href="https://github.com/Rawlings/autoremediator/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/Rawlings/autoremediator/ci.yml?branch=master&logo=github&label=CI"></a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/autoremediator"><img alt="node" src="https://img.shields.io/node/v/autoremediator?logo=nodedotjs&logoColor=white"></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/autoremediator"><img alt="types" src="https://img.shields.io/npm/types/autoremediator?logo=typescript&logoColor=white"></a>
|
|
11
|
+
<a href="LICENSE"><img alt="license" src="https://img.shields.io/npm/l/autoremediator"></a>
|
|
12
|
+
<a href="https://github.com/Rawlings/autoremediator/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/Rawlings/autoremediator?style=flat&logo=github"></a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="docs/getting-started.md">Getting started</a> ·
|
|
17
|
+
<a href="docs/how-it-works.md">How it works</a> ·
|
|
18
|
+
<a href="docs/integrations/github-action.md">GitHub Action</a> ·
|
|
19
|
+
<a href="docs/README.md">Docs</a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
Hand it a CVE or GHSA id, or your scanner's report (package manager audit or SARIF). It works out
|
|
23
|
+
the safest fix, applies it, runs your tests, and rolls back if anything breaks. What it cannot fix,
|
|
24
|
+
it tells you, with the reason.
|
|
2
25
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
26
|
+
```bash
|
|
27
|
+
npx autoremediator --audit --run-tests
|
|
28
|
+
```
|
|
6
29
|
|
|
7
|
-
|
|
8
|
-
upgrades, overrides or patches the affected packages, verifies the result, and reports exactly what
|
|
9
|
-
it did and what it could not fix.
|
|
30
|
+
## The problem
|
|
10
31
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
32
|
+
Scanners and update bots tell you what is wrong, or open a pull request for one bump at a time.
|
|
33
|
+
Turning findings into a safe change is still manual work: which version is actually fixed, is the
|
|
34
|
+
vulnerable package buried three levels deep, will the upgrade break the build, and what do you do
|
|
35
|
+
when no fixed version exists? Findings pile up, and the one being exploited in the wild waits in the
|
|
36
|
+
same queue as the rest.
|
|
14
37
|
|
|
15
|
-
|
|
16
|
-
npx autoremediator CVE-2021-23337 --dry-run # preview
|
|
17
|
-
npx autoremediator CVE-2021-23337 --run-tests # apply and verify
|
|
18
|
-
npx autoremediator --audit # remediate whatever `npm audit` reports
|
|
19
|
-
```
|
|
38
|
+
## What it does for each vulnerable package
|
|
20
39
|
|
|
21
|
-
|
|
40
|
+
| Situation | What Autoremediator does |
|
|
41
|
+
| --------- | ------------------------ |
|
|
42
|
+
| A fixed version exists | Bumps to the **lowest** safe version, keeping the change small |
|
|
43
|
+
| The package is transitive | Pins the fix with your package manager's own `overrides` or `resolutions` |
|
|
44
|
+
| No fixed version exists | Generates a reviewable `.patch` file, if you configure a model |
|
|
45
|
+
| It cannot be fixed safely | Leaves your code alone and reports exactly why |
|
|
22
46
|
|
|
23
|
-
|
|
47
|
+
Every change is installed, tested if you ask, and **rolled back on failure**. Nothing is reported as
|
|
48
|
+
fixed that was not verified.
|
|
24
49
|
|
|
25
|
-
|
|
50
|
+
## Why you can rely on it
|
|
26
51
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
52
|
+
- **Verified, not hopeful.** Install, tests, type check and an optional proof-of-fix run before a
|
|
53
|
+
change is kept.
|
|
54
|
+
- **Honest reports.** Unfixed findings carry a machine-readable reason, never a silent skip.
|
|
55
|
+
- **Exploit-aware.** CISA KEV and EPSS signals and your SLA windows decide what is urgent.
|
|
56
|
+
- **You set the autonomy.** A [policy file](docs/reference/policy-file.md) controls what may change.
|
|
57
|
+
Each result is applied, held for approval or escalated.
|
|
58
|
+
- **The model is optional and boxed in.** It is used only to draft patches when no fix exists. Its
|
|
59
|
+
output is syntax-checked and confidence-gated, and its tests are never run.
|
|
60
|
+
- **Deterministic everywhere else.** The same input gives the same plan, and `--offline` runs from a
|
|
61
|
+
local advisory snapshot.
|
|
30
62
|
|
|
31
|
-
|
|
32
|
-
Unfixed findings are reported with an explicit reason, never dropped.
|
|
63
|
+
## Run it where you work
|
|
33
64
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
65
|
+
| | |
|
|
66
|
+
| --- | --- |
|
|
67
|
+
| **CLI and [SDK](docs/reference/sdk.md)** | Local runs, scripts, pipelines |
|
|
68
|
+
| **[GitHub Action](docs/integrations/github-action.md)** | A nightly pull request that fixes what audit finds |
|
|
69
|
+
| **[GitHub App](docs/integrations/github-app.md)** | Remediation across every repository you install it on |
|
|
70
|
+
| **[MCP server](docs/integrations/mcp-server.md)** | Give your editor or agent a safe way to fix dependencies |
|
|
71
|
+
| **[HTTP server](docs/integrations/http-server.md)** | Call it from internal services |
|
|
72
|
+
| **[VS Code](packages/vscode-extension/README.md)** | Findings and one-click fixes in `package.json` |
|
|
37
73
|
|
|
38
|
-
|
|
74
|
+
Works with npm, pnpm, Yarn, Bun and Deno projects. Requires Node.js 26 or later.
|
|
39
75
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
[
|
|
76
|
+
> [!WARNING]
|
|
77
|
+
> Automated dependency changes carry operational and supply-chain risk. Start with `--dry-run`, keep
|
|
78
|
+
> CI and branch protection in place, and set a policy. See [Safety](docs/safety.md).
|
|
43
79
|
|
|
44
|
-
##
|
|
80
|
+
## Learn more
|
|
45
81
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- [Architecture](docs/architecture.md) and [Contributing](CONTRIBUTING.md)
|
|
50
|
-
- [AGENTS.md](AGENTS.md), [llms.txt](llms.txt): machine-readable summaries
|
|
82
|
+
[Getting started](docs/getting-started.md) · [How it works](docs/how-it-works.md) ·
|
|
83
|
+
[CLI](docs/reference/cli.md) · [All documentation](docs/README.md) ·
|
|
84
|
+
[Contributing](CONTRIBUTING.md)
|
|
51
85
|
|
|
52
86
|
## License
|
|
53
87
|
|
|
54
|
-
MIT
|
|
88
|
+
[MIT](LICENSE)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/change-request/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/change-request/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvC,GAAG,IAAI,CAMP;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAehE;AAuED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,iBAAiB,EAAE,EAC5B,QAAQ,EAAE,qBAAqB,GAC9B,iBAAiB,EAAE,EAAE,CAgDvB;AA4JD,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAgKjC"}
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { isAbsolute, relative, resolve } from "node:path";
|
|
4
|
+
import { safeExeca } from "../../platform/safe-exec.js";
|
|
5
|
+
import { trimChar } from "../../platform/trim.js";
|
|
6
|
+
/**
|
|
7
|
+
* Change requests commit and push, so they must never run for dry-run/preview/plan flows.
|
|
8
|
+
* Enforced here (not only in the CLI) so SDK, MCP and HTTP callers get the same guarantee.
|
|
9
|
+
*/
|
|
10
|
+
export function assertChangeRequestAllowed(options) {
|
|
11
|
+
if (options.changeRequest?.enabled && (options.dryRun || options.preview)) {
|
|
12
|
+
throw new Error("changeRequest cannot be combined with dryRun/preview (or planRemediation): change requests commit and push.");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Remove option fields that redirect credentials or API traffic. These are host configuration,
|
|
17
|
+
* never something an untrusted MCP/HTTP caller may set. Walks nested objects (e.g. portfolio targets).
|
|
18
|
+
*/
|
|
19
|
+
export function stripUntrustedChangeRequestFields(value) {
|
|
20
|
+
if (Array.isArray(value)) {
|
|
21
|
+
return value.map((entry) => stripUntrustedChangeRequestFields(entry));
|
|
22
|
+
}
|
|
23
|
+
if (typeof value !== "object" || value === null)
|
|
24
|
+
return value;
|
|
25
|
+
const out = {};
|
|
26
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
27
|
+
if (key === "changeRequest" && typeof entry === "object" && entry !== null) {
|
|
28
|
+
const { tokenEnvVar: _t, githubApiUrl: _u, ...rest } = entry;
|
|
29
|
+
out[key] = rest;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
out[key] = stripUntrustedChangeRequestFields(entry);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
async function stageRunChanges(cwd, reports) {
|
|
38
|
+
// Stage modifications to tracked files only; never sweep up unrelated untracked files.
|
|
39
|
+
await safeExeca("git", ["add", "-u"], { cwd, stdio: "pipe" });
|
|
40
|
+
// New artifacts the run itself produced (generated patch files) are staged explicitly.
|
|
41
|
+
const produced = new Set();
|
|
42
|
+
for (const report of reports) {
|
|
43
|
+
for (const result of report.results) {
|
|
44
|
+
if (!result.patchFilePath)
|
|
45
|
+
continue;
|
|
46
|
+
const abs = isAbsolute(result.patchFilePath)
|
|
47
|
+
? result.patchFilePath
|
|
48
|
+
: resolve(cwd, result.patchFilePath);
|
|
49
|
+
const rel = relative(cwd, abs);
|
|
50
|
+
if (rel.startsWith("..") || isAbsolute(rel) || !existsSync(abs))
|
|
51
|
+
continue;
|
|
52
|
+
produced.add(rel);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (produced.size > 0) {
|
|
56
|
+
await safeExeca("git", ["add", "--", ...produced], { cwd, stdio: "pipe" });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function sanitizeBranchToken(value) {
|
|
60
|
+
return trimChar(value.toLowerCase().replaceAll(/[^a-z0-9._/-]+/g, "-"), "-").slice(0, 80);
|
|
61
|
+
}
|
|
62
|
+
function buildPlan(reports) {
|
|
63
|
+
const cveIds = [...new Set(reports.map((report) => report.cveId))];
|
|
64
|
+
const packageNames = [
|
|
65
|
+
...new Set(reports.flatMap((report) => report.results.map((result) => result.packageName))),
|
|
66
|
+
];
|
|
67
|
+
const titleSuffix = cveIds.length === 1 ? cveIds[0] : `${cveIds.length} CVEs`;
|
|
68
|
+
const title = `security remediation: ${titleSuffix}`;
|
|
69
|
+
const body = [
|
|
70
|
+
"Automated remediation generated by autoremediator.",
|
|
71
|
+
"",
|
|
72
|
+
`CVEs: ${cveIds.join(", ")}`,
|
|
73
|
+
`Packages: ${packageNames.join(", ")}`,
|
|
74
|
+
].join("\n");
|
|
75
|
+
return {
|
|
76
|
+
cveIds,
|
|
77
|
+
packageNames,
|
|
78
|
+
title,
|
|
79
|
+
body,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function resolveProvider(options) {
|
|
83
|
+
return options.provider ?? "github";
|
|
84
|
+
}
|
|
85
|
+
function resolveGrouping(options) {
|
|
86
|
+
const allowed = ["all", "per-cve", "per-package", "by-severity"];
|
|
87
|
+
if (options.grouping && !allowed.includes(options.grouping)) {
|
|
88
|
+
throw new Error(`Unsupported changeRequest.grouping: "${options.grouping}". Supported values: ${allowed.join(", ")}`);
|
|
89
|
+
}
|
|
90
|
+
return options.grouping ?? "all";
|
|
91
|
+
}
|
|
92
|
+
export function groupReports(reports, grouping) {
|
|
93
|
+
if (reports.length === 0)
|
|
94
|
+
return [];
|
|
95
|
+
if (grouping === "all") {
|
|
96
|
+
return [reports];
|
|
97
|
+
}
|
|
98
|
+
if (grouping === "per-cve") {
|
|
99
|
+
const map = new Map();
|
|
100
|
+
for (const report of reports) {
|
|
101
|
+
const key = report.cveId.toUpperCase();
|
|
102
|
+
const list = map.get(key) ?? [];
|
|
103
|
+
list.push(report);
|
|
104
|
+
map.set(key, list);
|
|
105
|
+
}
|
|
106
|
+
return [...map.values()];
|
|
107
|
+
}
|
|
108
|
+
if (grouping === "per-package") {
|
|
109
|
+
const map = new Map();
|
|
110
|
+
for (const report of reports) {
|
|
111
|
+
const pkgs = new Set(report.results.map((r) => r.packageName));
|
|
112
|
+
if (pkgs.size === 0) {
|
|
113
|
+
const list = map.get("misc") ?? [];
|
|
114
|
+
list.push(report);
|
|
115
|
+
map.set("misc", list);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
for (const pkg of pkgs) {
|
|
119
|
+
const list = map.get(pkg) ?? [];
|
|
120
|
+
list.push(report);
|
|
121
|
+
map.set(pkg, list);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return [...map.values()];
|
|
126
|
+
}
|
|
127
|
+
if (grouping === "by-severity") {
|
|
128
|
+
const map = new Map();
|
|
129
|
+
for (const report of reports) {
|
|
130
|
+
const sev = report.cveDetails?.severity ?? "UNKNOWN";
|
|
131
|
+
const list = map.get(sev) ?? [];
|
|
132
|
+
list.push(report);
|
|
133
|
+
map.set(sev, list);
|
|
134
|
+
}
|
|
135
|
+
return [...map.values()];
|
|
136
|
+
}
|
|
137
|
+
return [reports];
|
|
138
|
+
}
|
|
139
|
+
async function detectCurrentBranch(cwd) {
|
|
140
|
+
const result = await safeExeca("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
|
|
141
|
+
cwd,
|
|
142
|
+
stdio: "pipe",
|
|
143
|
+
});
|
|
144
|
+
return result.stdout.trim();
|
|
145
|
+
}
|
|
146
|
+
async function ensureRepoHasChanges(cwd) {
|
|
147
|
+
const diff = await safeExeca("git", ["status", "--porcelain"], {
|
|
148
|
+
cwd,
|
|
149
|
+
stdio: "pipe",
|
|
150
|
+
});
|
|
151
|
+
return diff.stdout.trim().length > 0;
|
|
152
|
+
}
|
|
153
|
+
function toBranchName(prefix, cveIds) {
|
|
154
|
+
const token = sanitizeBranchToken(cveIds.join("-") || "remediation");
|
|
155
|
+
return `${sanitizeBranchToken(prefix)}/${token}-${randomBytes(6).toString("hex")}`;
|
|
156
|
+
}
|
|
157
|
+
async function detectRepoFromRemote(cwd) {
|
|
158
|
+
const result = await safeExeca("git", ["config", "--get", "remote.origin.url"], {
|
|
159
|
+
cwd,
|
|
160
|
+
stdio: "pipe",
|
|
161
|
+
}).catch(() => ({ stdout: "" }));
|
|
162
|
+
const url = result.stdout.trim();
|
|
163
|
+
const match = /[:/]([^/]+)\/([^/]+?)(?:\.git)?$/.exec(url);
|
|
164
|
+
if (match) {
|
|
165
|
+
return `${match[1]}/${match[2]}`;
|
|
166
|
+
}
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
async function ensureRepoHasStagedChanges(cwd) {
|
|
170
|
+
const result = await safeExeca("git", ["diff", "--cached", "--name-only"], {
|
|
171
|
+
cwd,
|
|
172
|
+
stdio: "pipe",
|
|
173
|
+
}).catch(() => ({ stdout: "" }));
|
|
174
|
+
return result.stdout.trim().length > 0;
|
|
175
|
+
}
|
|
176
|
+
async function createGitHubRequest(params) {
|
|
177
|
+
const token = params.token ?? process.env.GITHUB_TOKEN ?? process.env.GH_TOKEN;
|
|
178
|
+
let repository = params.repository;
|
|
179
|
+
if (!repository) {
|
|
180
|
+
repository = await detectRepoFromRemote(params.cwd);
|
|
181
|
+
}
|
|
182
|
+
if (token && repository) {
|
|
183
|
+
const [owner, repo] = repository.split("/");
|
|
184
|
+
const baseUrl = (params.githubApiUrl ? trimChar(params.githubApiUrl, "/", "end") : undefined) ||
|
|
185
|
+
"https://api.github.com";
|
|
186
|
+
const endpoint = `${baseUrl}/repos/${owner}/${repo}/pulls`;
|
|
187
|
+
const response = await fetch(endpoint, {
|
|
188
|
+
method: "POST",
|
|
189
|
+
headers: {
|
|
190
|
+
authorization: `Bearer ${token}`,
|
|
191
|
+
accept: "application/vnd.github+json",
|
|
192
|
+
"content-type": "application/json",
|
|
193
|
+
"user-agent": "autoremediator",
|
|
194
|
+
"x-github-api-version": "2022-11-28",
|
|
195
|
+
},
|
|
196
|
+
body: JSON.stringify({
|
|
197
|
+
title: params.title,
|
|
198
|
+
head: params.head,
|
|
199
|
+
base: params.base,
|
|
200
|
+
body: params.body,
|
|
201
|
+
draft: Boolean(params.draft),
|
|
202
|
+
}),
|
|
203
|
+
});
|
|
204
|
+
if (!response.ok) {
|
|
205
|
+
const errText = await response.text().catch(() => "");
|
|
206
|
+
throw new Error(`GitHub API create pull request failed (${response.status}): ${errText}`);
|
|
207
|
+
}
|
|
208
|
+
const data = (await response.json());
|
|
209
|
+
return data.html_url || undefined;
|
|
210
|
+
}
|
|
211
|
+
const args = [
|
|
212
|
+
"pr",
|
|
213
|
+
"create",
|
|
214
|
+
"--head",
|
|
215
|
+
params.head,
|
|
216
|
+
"--base",
|
|
217
|
+
params.base,
|
|
218
|
+
"--title",
|
|
219
|
+
params.title,
|
|
220
|
+
"--body",
|
|
221
|
+
params.body,
|
|
222
|
+
];
|
|
223
|
+
if (params.repository) {
|
|
224
|
+
args.push("--repo", params.repository);
|
|
225
|
+
}
|
|
226
|
+
if (params.draft) {
|
|
227
|
+
args.push("--draft");
|
|
228
|
+
}
|
|
229
|
+
const result = await safeExeca("gh", args, {
|
|
230
|
+
cwd: params.cwd,
|
|
231
|
+
stdio: "pipe",
|
|
232
|
+
});
|
|
233
|
+
return result.stdout.trim() || undefined;
|
|
234
|
+
}
|
|
235
|
+
async function createGitLabRequest(params) {
|
|
236
|
+
const args = [
|
|
237
|
+
"mr",
|
|
238
|
+
"create",
|
|
239
|
+
"--source-branch",
|
|
240
|
+
params.source,
|
|
241
|
+
"--target-branch",
|
|
242
|
+
params.target,
|
|
243
|
+
"--title",
|
|
244
|
+
params.title,
|
|
245
|
+
"--description",
|
|
246
|
+
params.body,
|
|
247
|
+
];
|
|
248
|
+
if (params.repository) {
|
|
249
|
+
args.push("-R", params.repository);
|
|
250
|
+
}
|
|
251
|
+
if (params.draft) {
|
|
252
|
+
args.push("--draft");
|
|
253
|
+
}
|
|
254
|
+
const result = await safeExeca("glab", args, {
|
|
255
|
+
cwd: params.cwd,
|
|
256
|
+
stdio: "pipe",
|
|
257
|
+
});
|
|
258
|
+
return result.stdout.trim() || undefined;
|
|
259
|
+
}
|
|
260
|
+
export async function createChangeRequestsForReports(params) {
|
|
261
|
+
const { cwd, options, reports } = params;
|
|
262
|
+
const provider = resolveProvider(options);
|
|
263
|
+
const grouping = resolveGrouping(options);
|
|
264
|
+
const groups = groupReports(reports, grouping);
|
|
265
|
+
if (groups.length === 0) {
|
|
266
|
+
return [];
|
|
267
|
+
}
|
|
268
|
+
const results = [];
|
|
269
|
+
const token = options.token ??
|
|
270
|
+
(options.tokenEnvVar ? process.env[options.tokenEnvVar] : undefined) ??
|
|
271
|
+
process.env.GITHUB_TOKEN ??
|
|
272
|
+
process.env.GH_TOKEN;
|
|
273
|
+
const baseBranch = options.baseBranch ?? (await detectCurrentBranch(cwd).catch(() => "main"));
|
|
274
|
+
const branchPrefix = options.branchPrefix ?? "autoremediator";
|
|
275
|
+
const pushRemote = options.pushRemote ?? "origin";
|
|
276
|
+
if (options.pushRemote && !/^[a-zA-Z0-9._-]+$/.test(options.pushRemote)) {
|
|
277
|
+
throw new Error(`Invalid pushRemote value: ${options.pushRemote}`);
|
|
278
|
+
}
|
|
279
|
+
if (options.repository && !/^[a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+$/.test(options.repository)) {
|
|
280
|
+
throw new Error(`Invalid repository format: ${options.repository}`);
|
|
281
|
+
}
|
|
282
|
+
for (const group of groups) {
|
|
283
|
+
const plan = buildPlan(group);
|
|
284
|
+
const titlePrefix = options.titlePrefix?.trim().slice(0, 200);
|
|
285
|
+
const bodyFooter = options.bodyFooter ? options.bodyFooter.slice(0, 2000) : undefined;
|
|
286
|
+
const title = titlePrefix ? `${titlePrefix} ${plan.title}` : plan.title;
|
|
287
|
+
const body = bodyFooter ? `${plan.body}\n\n${bodyFooter}` : plan.body;
|
|
288
|
+
const hasChanges = await ensureRepoHasChanges(cwd).catch(() => false);
|
|
289
|
+
if (!hasChanges) {
|
|
290
|
+
results.push({
|
|
291
|
+
provider,
|
|
292
|
+
grouping,
|
|
293
|
+
repository: options.repository,
|
|
294
|
+
branchName: "",
|
|
295
|
+
title,
|
|
296
|
+
body,
|
|
297
|
+
created: false,
|
|
298
|
+
cveIds: plan.cveIds,
|
|
299
|
+
packageNames: plan.packageNames,
|
|
300
|
+
error: "No repository changes to include in change request.",
|
|
301
|
+
});
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
const branchName = toBranchName(branchPrefix, plan.cveIds);
|
|
305
|
+
let branchCreated = false;
|
|
306
|
+
try {
|
|
307
|
+
await safeExeca("git", ["checkout", "-b", branchName], { cwd, stdio: "pipe" });
|
|
308
|
+
branchCreated = true;
|
|
309
|
+
await stageRunChanges(cwd, group);
|
|
310
|
+
const hasStaged = await ensureRepoHasStagedChanges(cwd);
|
|
311
|
+
if (!hasStaged) {
|
|
312
|
+
results.push({
|
|
313
|
+
provider,
|
|
314
|
+
grouping,
|
|
315
|
+
repository: options.repository,
|
|
316
|
+
branchName: "",
|
|
317
|
+
title,
|
|
318
|
+
body,
|
|
319
|
+
created: false,
|
|
320
|
+
cveIds: plan.cveIds,
|
|
321
|
+
packageNames: plan.packageNames,
|
|
322
|
+
error: "No repository changes to include in change request.",
|
|
323
|
+
});
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
await safeExeca("git", [
|
|
327
|
+
"-c",
|
|
328
|
+
"user.name=autoremediator[bot]",
|
|
329
|
+
"-c",
|
|
330
|
+
"user.email=41898282+github-actions[bot]@users.noreply.github.com",
|
|
331
|
+
"commit",
|
|
332
|
+
"-m",
|
|
333
|
+
title,
|
|
334
|
+
], { cwd, stdio: "pipe" });
|
|
335
|
+
const pushArgs = token
|
|
336
|
+
? [
|
|
337
|
+
"-c",
|
|
338
|
+
`http.extraheader=AUTHORIZATION: basic ${Buffer.from(`x-access-token:${token}`).toString("base64")}`,
|
|
339
|
+
"push",
|
|
340
|
+
"-u",
|
|
341
|
+
pushRemote,
|
|
342
|
+
branchName,
|
|
343
|
+
]
|
|
344
|
+
: ["push", "-u", pushRemote, branchName];
|
|
345
|
+
await safeExeca("git", pushArgs, { cwd, stdio: "pipe" });
|
|
346
|
+
const url = provider === "github"
|
|
347
|
+
? await createGitHubRequest({
|
|
348
|
+
cwd,
|
|
349
|
+
repository: options.repository,
|
|
350
|
+
head: branchName,
|
|
351
|
+
base: baseBranch,
|
|
352
|
+
title,
|
|
353
|
+
body,
|
|
354
|
+
draft: options.draft,
|
|
355
|
+
token,
|
|
356
|
+
githubApiUrl: options.githubApiUrl,
|
|
357
|
+
})
|
|
358
|
+
: await createGitLabRequest({
|
|
359
|
+
cwd,
|
|
360
|
+
repository: options.repository,
|
|
361
|
+
source: branchName,
|
|
362
|
+
target: baseBranch,
|
|
363
|
+
title,
|
|
364
|
+
body,
|
|
365
|
+
draft: options.draft,
|
|
366
|
+
});
|
|
367
|
+
results.push({
|
|
368
|
+
provider,
|
|
369
|
+
grouping,
|
|
370
|
+
repository: options.repository,
|
|
371
|
+
branchName,
|
|
372
|
+
title,
|
|
373
|
+
body,
|
|
374
|
+
created: true,
|
|
375
|
+
draft: options.draft,
|
|
376
|
+
url,
|
|
377
|
+
cveIds: plan.cveIds,
|
|
378
|
+
packageNames: plan.packageNames,
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
catch (error) {
|
|
382
|
+
results.push({
|
|
383
|
+
provider,
|
|
384
|
+
grouping,
|
|
385
|
+
repository: options.repository,
|
|
386
|
+
branchName: "",
|
|
387
|
+
title,
|
|
388
|
+
body,
|
|
389
|
+
created: false,
|
|
390
|
+
draft: options.draft,
|
|
391
|
+
cveIds: plan.cveIds,
|
|
392
|
+
packageNames: plan.packageNames,
|
|
393
|
+
error: error instanceof Error ? error.message : String(error),
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
finally {
|
|
397
|
+
if (branchCreated) {
|
|
398
|
+
await safeExeca("git", ["checkout", baseBranch], { cwd, stdio: "pipe" }).catch(() => { });
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return results;
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/change-request/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAM9B,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,GACxB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,GAAG,kBAAkB,CAMtE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,CAKrF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,sBAAsB,CA8BjG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { loadPolicy } from "../platform/policy.js";
|
|
2
|
+
function buildRequestId() {
|
|
3
|
+
return `req-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
4
|
+
}
|
|
5
|
+
export function resolveCorrelationContext(options) {
|
|
6
|
+
return {
|
|
7
|
+
requestId: options.requestId ?? buildRequestId(),
|
|
8
|
+
sessionId: options.sessionId,
|
|
9
|
+
parentRunId: options.parentRunId,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function resolveProvenanceContext(options) {
|
|
13
|
+
return {
|
|
14
|
+
actor: options.actor,
|
|
15
|
+
source: options.source ?? "sdk",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function resolveConstraints(options, cwd) {
|
|
19
|
+
const policy = loadPolicy(cwd, options.policy);
|
|
20
|
+
return {
|
|
21
|
+
directDependenciesOnly: options.constraints?.directDependenciesOnly ??
|
|
22
|
+
policy.constraints?.directDependenciesOnly ??
|
|
23
|
+
false,
|
|
24
|
+
preferVersionBump: options.constraints?.preferVersionBump ?? policy.constraints?.preferVersionBump ?? false,
|
|
25
|
+
installMode: options.constraints?.installMode ?? policy.constraints?.installMode ?? "deterministic",
|
|
26
|
+
installPreferOffline: options.constraints?.installPreferOffline ?? policy.constraints?.installPreferOffline,
|
|
27
|
+
enforceFrozenLockfile: options.constraints?.enforceFrozenLockfile ?? policy.constraints?.enforceFrozenLockfile,
|
|
28
|
+
workspace: options.constraints?.workspace ?? policy.constraints?.workspace,
|
|
29
|
+
typecheck: options.typecheck ?? options.constraints?.typecheck ?? policy.constraints?.typecheck,
|
|
30
|
+
requireProofOfFix: options.requireProofOfFix ??
|
|
31
|
+
options.constraints?.requireProofOfFix ??
|
|
32
|
+
policy.constraints?.requireProofOfFix,
|
|
33
|
+
enableBreakingChangeRefactor: options.breakingChangeRefactor ??
|
|
34
|
+
options.constraints?.enableBreakingChangeRefactor ??
|
|
35
|
+
policy.constraints?.enableBreakingChangeRefactor,
|
|
36
|
+
supplyChainPolicy: options.supplyChainPolicy ??
|
|
37
|
+
options.constraints?.supplyChainPolicy ??
|
|
38
|
+
policy.constraints?.supplyChainPolicy,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/api/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQnD,SAAS,cAAc;IACrB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAyB;IAEzB,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc,EAAE;QAChD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAyB;IAChE,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAyB,EAAE,GAAW;IACvE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO;QACL,sBAAsB,EACpB,OAAO,CAAC,WAAW,EAAE,sBAAsB;YAC3C,MAAM,CAAC,WAAW,EAAE,sBAAsB;YAC1C,KAAK;QACP,iBAAiB,EACf,OAAO,CAAC,WAAW,EAAE,iBAAiB,IAAI,MAAM,CAAC,WAAW,EAAE,iBAAiB,IAAI,KAAK;QAC1F,WAAW,EACT,OAAO,CAAC,WAAW,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,WAAW,IAAI,eAAe;QACxF,oBAAoB,EAClB,OAAO,CAAC,WAAW,EAAE,oBAAoB,IAAI,MAAM,CAAC,WAAW,EAAE,oBAAoB;QACvF,qBAAqB,EACnB,OAAO,CAAC,WAAW,EAAE,qBAAqB,IAAI,MAAM,CAAC,WAAW,EAAE,qBAAqB;QACzF,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,SAAS;QAC1E,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,SAAS;QAC/F,iBAAiB,EACf,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,WAAW,EAAE,iBAAiB;YACtC,MAAM,CAAC,WAAW,EAAE,iBAAiB;QACvC,4BAA4B,EAC1B,OAAO,CAAC,sBAAsB;YAC9B,OAAO,CAAC,WAAW,EAAE,4BAA4B;YACjD,MAAM,CAAC,WAAW,EAAE,4BAA4B;QAClD,iBAAiB,EACf,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,WAAW,EAAE,iBAAiB;YACtC,MAAM,CAAC,WAAW,EAAE,iBAAiB;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/api/contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/delta-scan/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/evaluate/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC"}
|