Skip to content

Use npm ci --ignore-scripts in deploy workflow#33

Open
fumikito wants to merge 1 commit intomasterfrom
fix/npm-ci-ignore-scripts
Open

Use npm ci --ignore-scripts in deploy workflow#33
fumikito wants to merge 1 commit intomasterfrom
fix/npm-ci-ignore-scripts

Conversation

@fumikito
Copy link
Copy Markdown
Contributor

Summary

  • Replace npm install with npm ci --ignore-scripts in deploy.yml
  • Prevents execution of postinstall/lifecycle scripts during CI, mitigating supply chain attacks
  • No functional impact: deploy workflow doesn't need husky hooks or other lifecycle scripts

Test plan

  • Deploy workflow still builds and deploys correctly on next release

@fumikito fumikito enabled auto-merge March 31, 2026 08:55
@claude
Copy link
Copy Markdown

claude bot commented Mar 31, 2026

AI トリアージ: PR #33

リスク: 🟢 低(CIコンフィグのみ)
スコープ: `scope:config`
不足: なし

サマリー

  • デプロイワークフローの npm installnpm ci --ignore-scripts に置き換え、サプライチェーン攻撃リスクを軽減
  • ビルド成果物・プラグイン本体には影響なし
詳細レビュー

テスト要否

  • ⚪ テスト不要: .github/workflows/deploy.yml — CI設定ファイルのみ変更、ビジネスロジックなし

レビュワーが確認すべき箇所

  1. .github/workflows/deploy.yml:35--ignore-scripts により postinstall で native addon をビルドするパッケージが存在する場合は破損する。package.json の依存関係に該当パッケージがないか確認推奨(WordPress プラグインの標準的なビルドツール構成ならまず問題なし)

設計上の懸念

変更の妥当性について:

  • npm cipackage-lock.json を厳密に参照するため、バージョンの再現性が向上する
  • --ignore-scriptsprepare(husky 等)・postinstall などのライフサイクルスクリプトをスキップし、悪意ある依存パッケージによるコード実行を防ぐ
  • npm run package(ビルド本体)は別ステップで実行されるため、この変更でビルドが壊れる理由はない
  • ℹ️ npm cipackage-lock.jsonpackage.json と乖離していた場合にエラーで止まるため、ロックファイルを最新に保つ運用規律が必要(既存の CI で問題が出ていなければ問題なし)

総評: セキュリティ上の改善であり、副作用のリスクは極めて低い。そのままマージ可。


🤖 AI トリアージ済み — 2026-03-31

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant