Skip to content

build: audit-exception expiry release gate#827

Merged
jithinraj merged 2 commits into
mainfrom
build/audit-exception-expiry-gate
Jun 6, 2026
Merged

build: audit-exception expiry release gate#827
jithinraj merged 2 commits into
mainfrom
build/audit-exception-expiry-gate

Conversation

@jithinraj

@jithinraj jithinraj commented Jun 6, 2026

Copy link
Copy Markdown
Member

Summary

Add a focused, offline release-hygiene gate over the dependency audit allowlist so no audit exception silently expires or goes past its renewal-review window across a release. No protocol surface change.

Scope

Tooling, its test, and release docs only. No wire, schema, signing, CLI, or runtime behavior change; no published-package change; no workflow change; no dependency change. The audit allowlist data (security/audit-allowlist.json) is not modified. Public-surface sentinels are unchanged.

jithinraj added 2 commits June 6, 2026 17:50
Add a focused, offline release-hygiene gate over the dependency audit
allowlist (security/audit-allowlist.json). scripts/check-audit-exception-
expiry.mjs reuses parseAllowlist() from audit-gate-lib.mjs to report the
allowlist's expiry and renewal-review health without running pnpm audit:
RED on expired or invalid entries, YELLOW on entries expiring within the
14-day window or added more than 30 days ago without a reviewed_at date,
GREEN otherwise. --strict passes through to parseAllowlist (entries past
the 60-day review window without review are rejected) and fails on YELLOW;
--json emits the result. The classification is a pure, exported helper
behind a main guard so it unit-tests deterministically with a fixed date.

Document the gate in the release Pre-Release Checklist and the step 4 gate
list, and record the npm-token-age, OIDC plus SLSA provenance, and
SSH-signed annotated tag expectations in docs/RELEASING.md.
Make the gate truly release-blocking and add deterministic CLI coverage:

- docs/RELEASING.md now runs the check in --strict release mode in both
  the Pre-Release Checklist and the step 4 gate list, so a YELLOW
  (expiring-soon or review-stale) exception fails release prep instead of
  passing silently.
- The script gains --allowlist <path> (default security/audit-allowlist.json;
  relative paths resolve from the working directory; a missing value exits
  2) so the CLI can be exercised against fixtures without touching the live
  allowlist.
- The test adds CLI smoke tests over synthetic allowlists (healthy GREEN
  JSON, warning YELLOW, warning under --strict exits 1, missing --allowlist
  value exits 2, unknown argument exits 2, and a main-guard probe that
  import does not run the CLI).
@jithinraj jithinraj changed the title build: add audit-exception expiry release gate build: audit-exception expiry release gate Jun 6, 2026
@jithinraj
jithinraj merged commit d94d60c into main Jun 6, 2026
29 of 30 checks passed
@jithinraj
jithinraj deleted the build/audit-exception-expiry-gate branch June 6, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant