Skip to content

ci: fail on known vulnerabilities with pnpm audit - #30

Merged
furedea merged 2 commits into
mainfrom
ci/add-pnpm-audit
Nov 2, 2026
Merged

furedea merged 2 commits into
mainfrom
ci/add-pnpm-audit

Conversation

@furedea-agent

@furedea-agent furedea-agent Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

CI の audit ジョブに pnpm audit を追加し,既知の脆弱性がある依存で CI を失敗させます.
追加時点で検出された zod@4.6.5(knip 経由,high)は lockfile 更新で解消しています.
判断ポイント:しきい値は全 severity,dev 依存も対象にしています(理由は下記).

項目 Before After
audit ジョブ pnpm run knip のみ(未使用ファイル・依存の検出) knip に加えて pnpm audit を実行
pnpm run check format / lint / typecheck / test / knip 末尾に pnpm audit を追加
zod(knip の依存) 4.6.5(GHSA-mrhx-c7xc-m3w5 該当) 4.6.7
pre-commit 変更なし 変更なし(ネットワークを使うため追加しない)

検証

  • 修正前の lockfile で pnpm audit が exit 1(high 1 件:GHSA-mrhx-c7xc-m3w5)になり,CI を失敗させられることを確認
  • zod を knip の範囲 ^4.6.5 内で 4.6.7 に更新後,pnpm audit が No known vulnerabilities found
  • pnpm run check(format:check,lint,typecheck,test,knip,audit)がローカルで全て成功
  • lefthook(pre-commit,commit-msg)通過
  • CI(新しい Run pnpm audit ステップを含む)全ジョブ成功
  • Codex 読み取り専用レビュー: P0〜P3 の指摘なし
設計判断と根拠
  • ツール選定: pnpm 組み込みの pnpm audit を採用し,追加依存はありません.osv-scanner も検討しましたが,別バイナリと action の導入・pin 管理が増える一方,npm エコシステム単体のテンプレートでは GitHub Advisory Database を参照する pnpm audit で十分と判断しました.
  • pnpm バージョン: npmjs.org は旧 audit エンドポイントを廃止済み(pnpm audit is no longer working (ERR_PNPM_AUDIT_BAD_RESPONSE) pnpm/pnpm#13033 は 10.32.1 で 410 を報告).新しい /-/npm/v1/security/advisories/bulk への移行は fix: adapt audit client to npmjs /advisories/bulk endpoint pnpm/pnpm#11268(マージコミット ff28085)で入っており,固定中の pnpm@11.28.6 がそのコミットを含むことを compare API で確認しました.ローカルの 11.28.6 でも正常に応答したため,pin の更新は不要です.
  • しきい値: --audit-level は既定(low 以上 = 全 severity)のままです.緩める具体的な理由がなく,例外は既存の pnpm-workspace.yaml の auditConfig.ignoreCves で個別に除外できます.
  • 対象範囲: --prod は付けず dev 依存も対象にしています.このテンプレートの依存は全て devDependencies で,ツールチェーンは開発者のマシンと CI 上で実行されるためです.
  • スコープ外: pre-commit への追加(ネットワークを使うため),他の依存の更新.

🤖 Generated with Claude Code

furedea and others added 2 commits November 2, 2026 14:34
knip pulls zod ^4.6.5; 4.6.5 is affected by a high-severity memory
exhaustion advisory. Refresh the lockfile within knip's range.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run pnpm audit in the audit job and in the local check script. Keep the
default threshold (any severity) and include dev dependencies, since the
toolchain runs on developer machines and CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@furedea
furedea merged commit 32b0b8b into main Nov 2, 2026
13 checks passed
@furedea
furedea deleted the ci/add-pnpm-audit branch November 2, 2026 05:58
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