You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rewrite GitHub Action for Marketplace and document new features (#8)
Convert action.yml from Docker to composite action that downloads
pre-built binaries from releases. Add fail-on input, vuln-count output,
proper GITHUB_OUTPUT writes, and default vex-triage to true.
Update README with --fail-on flag documentation, severity classification,
human-readable summary example, and refreshed GitHub Action section with
inputs/outputs tables.
Closes#7
The `triage` subcommand queries the [OSV.dev](https://osv.dev) batch API, batching PURLs in groups of 1000, and generates `under_investigation` stubs for each discovered vulnerability.
157
+
The `triage` subcommand queries the [OSV.dev](https://osv.dev) batch API, batching PURLs in groups of 1000, classifies each vulnerability by CVSS severity (critical, high, medium, low), and generates `under_investigation` stubs for each discovered vulnerability. Use `--fail-on <severity>` to fail the command when vulnerabilities at or above the threshold are found.
| `vex-triage` | `true` | Run VEX vulnerability triage against OSV.dev |
267
+
| `fail-on` | (none) | Fail if vulnerabilities at or above severity: `critical`, `high`, `medium`, `low` |
268
+
| `include-dev` | `false` | Include devDependencies in SBOM |
269
+
| `version` | `latest` | forgeseal version to install |
270
+
271
+
### Action Outputs
272
+
273
+
| Output | Description |
274
+
|---|---|
275
+
| `sbom-path` | Path to the generated CycloneDX SBOM |
276
+
| `bundle-path` | Path to the Sigstore signature bundle |
277
+
| `attestation-path` | Path to the SLSA provenance attestation |
278
+
| `vex-path` | Path to the VEX document |
279
+
| `vuln-count` | Number of vulnerabilities found by VEX triage |
280
+
281
+
The action downloads a pre-built binary from GitHub Releases (no Docker build overhead). OIDC tokens are obtained automatically when the workflow has `permissions: id-token: write`.
234
282
235
283
## Configuration
236
284
@@ -279,7 +327,7 @@ internal/
279
327
280
328
**Signing abstraction.** The `Signer` interface provides `SignBlob` (raw content) and `SignDSSE` (in-toto envelope). The current implementation generates ephemeral ECDSA P-256 signatures. Full Sigstore integration (Fulcio certificate issuance + Rekor log recording) can be added by depending on `sigstore-go` without changing the interface.
281
329
282
-
**VEX triage.** PURLs extracted from the SBOM are batched in groups of 1000 and sent to the OSV.dev `/v1/querybatch` endpoint. Results are mapped to `under_investigation` VEX stubs for manual review.
330
+
**VEX triage.** PURLs extracted from the SBOM are batched in groups of 1000 and sent to the OSV.dev `/v1/querybatch` endpoint. Each vulnerability is classified by CVSS v3 severity (critical 9.0+, high 7.0+, medium 4.0+, low 0.1+). Results are mapped to VEX stubs with severity metadata. The `--fail-on` flag enables CI gating by exiting non-zero when vulnerabilities meet or exceed the specified threshold.
0 commit comments