背景 / 現状
dist/ をコミットする設計のため、バンドルされる依存(dependencies)やバンドラ @vercel/ncc の更新を Dependabot が出すと、dist/ が古いまま CI の鮮度チェックで必ず落ちる。実際 #12(@actions/* メジャー)と #16(ncc)で、手動の npm ci → npm run build → commit → push が必要だった。dev 依存(eslint/vitest)やワークフロー依存は dist/ に入らないので影響なし。
参照: .github/workflows/ci.yml(dist 鮮度チェック)/ #12 / #16
対応
- Dependabot の PR に対し、
dist/ を再ビルドして PR ブランチへ commit し返す workflow を追加。
pull_request トリガで github.actor == "dependabot[bot]" のときのみ実行。
npm ci → npm run build → dist/ に差分があれば commit & push。
- セキュリティ注意: PR ブランチへ書き戻すため
permissions: contents: write が要る。Dependabot ブランチは同一リポ(fork でない)なので pull_request(pull_request_target は使わない)+ 最小権限で対応する。GITHUB_TOKEN の push が再帰実行を生まない点も確認する。
完了条件
背景 / 現状
dist/をコミットする設計のため、バンドルされる依存(dependencies)やバンドラ@vercel/nccの更新を Dependabot が出すと、dist/が古いまま CI の鮮度チェックで必ず落ちる。実際 #12(@actions/*メジャー)と #16(ncc)で、手動のnpm ci → npm run build → commit → pushが必要だった。dev 依存(eslint/vitest)やワークフロー依存はdist/に入らないので影響なし。参照:
.github/workflows/ci.yml(dist 鮮度チェック)/ #12 / #16対応
dist/を再ビルドして PR ブランチへ commit し返す workflow を追加。pull_requestトリガでgithub.actor == "dependabot[bot]"のときのみ実行。npm ci → npm run build→dist/に差分があれば commit & push。permissions: contents: writeが要る。Dependabot ブランチは同一リポ(fork でない)なのでpull_request(pull_request_targetは使わない)+ 最小権限で対応する。GITHUB_TOKENの push が再帰実行を生まない点も確認する。完了条件
dist/が自動再ビルド・コミットされるpull_request_target不使用・最小権限で、権限/シークレット漏洩経路が無い