Appearance
Dependabotセキュリティ設定手順書
このドキュメントでは、GitHubリポジトリでDependabotのセキュリティ機能を有効化する手順を説明します。
前提条件
- リポジトリの管理者権限を持っていること
- GitHubリポジトリの設定画面にアクセスできること
設定手順
1. リポジトリ設定画面を開く
- GitHubリポジトリのページにアクセスします
- リポジトリ名の下にある Settings タブをクリックします
- 左側のメニューから Code security and analysis を選択します
2. Dependency graphの有効化
- Dependency graph セクションを探します
- Enable ボタンをクリックします
- この機能により、リポジトリで使用されている依存関係のグラフが生成されます
- Dependabotが動作するために必要な前提条件です
3. Dependabot alertsの有効化
- Dependabot alerts セクションを探します
- Enable ボタンをクリックします
- この機能により、既知の脆弱性を含む依存関係が検出された際にアラートが表示されます
- セキュリティ上の問題を早期に発見できます
4. Dependabot security updatesの有効化
- Dependabot security updates セクションを探します
- Enable ボタンをクリックします
- この機能により、セキュリティ脆弱性を修正するプルリクエストが自動的に作成されます
- 手動での対応が不要になり、セキュリティパッチの適用が迅速化されます
設定後の動作確認
設定が完了すると、以下のように動作します:
- 自動スキャン: リポジトリの依存関係が定期的にスキャンされます
- アラート表示: 脆弱性が検出された場合、リポジトリの Security タブにアラートが表示されます
- 自動PR作成: セキュリティ更新が利用可能な場合、Dependabotが自動的にプルリクエストを作成します
注意事項
- セキュリティ更新のプルリクエストは、既存のCI/CDパイプライン(PHPUnitテストなど)を通過する必要があります
- プルリクエストは自動的にマージされないため、レビューと承認が必要です
- 大量の依存関係がある場合、初期スキャンに時間がかかる場合があります
npm の overrides で推移依存を固定するとき
package.json の overrides に完全一致のバージョンを書くと、要求元が修正版を要求するようになっても古い版のまま止まり、固定した版に新しい脆弱性が見つかってもアラートが残り続ける(Issue #4080)。
- 要求元の範囲内に修正版があり、lock が古い版に留まっているだけなら、override ではなく
npm update <パッケージ名>で lock を更新する - 固定するときは、PR 本文と下の表に「理由」と「外す条件」を書く
- 要求元の範囲に修正版が入ったら外す。Dependabot アラートの点検時に表を見直す
package.jsonを変えたらnpm install後にpackage-lock.jsonのバージョンを確かめる(古い入れ子エントリが残ると override が効かないことがある。その場合はエントリを消して入れ直す)
| 対象(overrides の書き方) | 固定する版 | 理由 | 外す条件 |
|---|---|---|---|
markdownlint-cli → js-yaml | 5.4.3 | markdownlint-cli 0.49.1 の要求 ~5.2.1 に修正版がない(GHSA-r3ph-w7gj-g6xm) | markdownlint-cli を更新し、その要求が 5.4.1 以上を許す範囲になったとき |
markdownlint-cli → smol-toml | 1.9.0 | markdownlint-cli 0.49.1 の要求 ~1.7.0 に修正版がない(GHSA-r4xh-jqrq-34v2) | markdownlint-cli を更新し、その要求が 1.8.1 以上を許す範囲になったとき |
minimatch | 10.2.3 | 理由未記録・要棚卸し。コミット履歴では 2026-02 に minimatch の ReDoS(high)対応で 10.2.1 → 10.2.3 に固定。現在は eslint 等が ^10.2.4〜^10.2.5、eslint-plugin-* 等が ^3.1.x を要求しており、固定で範囲外の版に揃えている | 棚卸しで判断する |
esbuild | 0.25.12 | 理由未記録・要棚卸し。コミット履歴では 2026-02 に audit 対応で追加し、PR #1182 のレビューで完全一致に変更。現在は vite 8 系が ^0.27.0 || ^0.28.0 を要求しており、固定で範囲外の版に揃えている | 棚卸しで判断する |
lighthouse | 13.4.1 | 理由未記録・要棚卸し。PR #3450(audit 対応)で 13.4.1 に固定。要求元の @wordpress/e2e-test-utils-playwright は ^13.4.1 | 棚卸しで判断する(要求元の範囲内なので外せる可能性が高い) |
serialize-javascript | 7.1.0 | 理由未記録・要棚卸し。2026-03 に copy-webpack-plugin 経由の RCE(high)対応で追加し、PR #3450 で 7.1.0 に変更。要求元は ^6.0.0 | 棚卸しで判断する |
@wordpress/scripts → webpack-dev-server | 6.0.0 | 理由未記録・要棚卸し。2026-02 に moderate 2 件(GHSA-9jgg-88mc-972h、GHSA-4v9v-hfq4-rm2v)対応で 5.2.1 に固定し、PR #3450 で 6.0.0 に変更。要求元の @wordpress/scripts は ^5.2.1 | 棚卸しで判断する |
関連ドキュメント
参考
- 設定ファイル: .github/dependabot.yml