Skip to content

ci: gate runtime advisories and criticals; document unfixable dev-tool highs (#48) - #50

Merged
karlwaldman merged 1 commit into
mainfrom
fix/npm-audit-20261014
Oct 14, 2026
Merged

karlwaldman merged 1 commit into
mainfrom
fix/npm-audit-20261014

Conversation

@karlwaldman

Copy link
Copy Markdown
Member

Closes #48.

Problem

main CI and the Pages deploy fail at npm audit --audit-level=moderate. Re-measured 2026-10-14 on origin/main: 3 high, 0 critical, all via @google/clasp -> micromatch -> braces (GHSA-vfj7-8cjw-p6xm). No critical remains (the issue title's criticals are already gone).
Every remaining advisory covers all published releases of the package (braces <=3.0.3 = latest; node-forge <=1.4.0 = latest), so no upgrade or overrides pin clears it. npm's only suggestion is a breaking downgrade.
npm audit --omit=dev --audit-level=low -> found 0 vulnerabilities.

Change

  • npm run audit:ci = npm audit --omit=dev --audit-level=moderate && npm audit --audit-level=critical; every workflow's audit step calls it.
  • Workflow-contract tests assert the step and the exact script.
  • The exception is documented with advisory IDs and a re-check condition.

Verification (local)

  • Old gate: exit 1. New gate: exit 0.
  • Full local CI sequence passes (see commit).

Expected effect: main CI and the docs/Pages deploy go green; any runtime advisory or any critical still blocks.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QQ7W3CkRKEnBpU5KRQUfUu

…l highs (#48)

npm audit --audit-level=moderate fails on main because of advisories that
cover every published release of the affected package (braces 3.0.3,
node-forge 1.4.0), reachable only through local dev/release tooling.
audit:ci = npm audit --omit=dev --audit-level=moderate && npm audit
--audit-level=critical, used by every workflow; the exception is recorded
with advisory IDs and a re-check condition.

Closes #48

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QQ7W3CkRKEnBpU5KRQUfUu
@coderabbitai

coderabbitai Bot commented Oct 14, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2082b576-01a5-4266-a594-9ab269d06c96
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@karlwaldman karlwaldman added the risk:elevated Elevated: auto-merges after an adversarial review APPROVE label Oct 14, 2026
@karlwaldman

Copy link
Copy Markdown
Member Author

Adversarial review: APPROVE (head b9bb737)

Tried to refute the claim that the highs are dev-only and unfixable.

  • Refuted. dependencies is empty. @google/clasp, sharp and yaml are devDependencies.
  • The full-tree audit has 3 highs (@google/clasp, micromatch, braces) and 0 critical.
  • npm audit --omit=dev finds 0.
  • GHSA-vfj7-8cjw-p6xm affects braces <= 3.0.3 with first_patched null. Latest is 3.0.3.

Gate: npm run audit:ci exits 0. All three workflows (validate, github-pages, apps-script-release) call it before npm run validate.

Tests:

  • npm test: 85/85 pass, including the TEST_RESULTS.md and audit:ci assertions.
  • npm run validate exits 0.
  • actionlint is clean.
  • CI validate is green.

Non-blocking: with no runtime npm deps, the --omit=dev half audits an empty graph. In practice the critical-only full-tree gate is the one doing the work. That is documented accurately.

@karlwaldman
karlwaldman merged commit b8ef315 into main Oct 14, 2026
2 checks passed
@karlwaldman
karlwaldman deleted the fix/npm-audit-20261014 branch October 14, 2026 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:elevated Elevated: auto-merges after an adversarial review APPROVE

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P2] main CI and docs deploy red: npm audit (8 vulns incl. 1 critical)

1 participant