Dependabotのcooldownとは|依存関係更新を安全に待つ考え方

#GitHub#Dependabot#セキュリティ#依存関係#初心者
MAO先生と生徒うみちゃん、生徒りくちゃんが教室でGitHub Dependabotのcooldownを学ぶイラスト
MAO先生と生徒たちを紹介

この記事でわかること

  • Dependabot version updatescooldownが何を待つ仕組みなのか
  • 既定の3日間cooldownと、security updatesの違い
  • dependabot.ymlで待機日数を調整する考え方
  • 依存関係更新PRを安全に確認する実務の流れ
  • 待てば安全、すぐ更新すれば安全、という早とちりを避けるポイント

結論・重要ポイント

  1. cooldownは、新しいパッケージ公開直後にすぐ通常更新PRを出さず、一定期間待つための仕組みです。
  2. GitHub.comでは、Dependabot version updatesに既定で3日間のcooldownが適用されます。
  3. この既定cooldownはversion updates向けで、脆弱性対応のsecurity updatesはすぐにPRが作成されます。
  4. 必要に応じて、dependabot.ymlcooldownで待機日数や対象依存関係を調整できます。
  5. 実務では、待機日数だけでなく、テスト、リリースノート確認、ロールバック方針をセットで考えることが大切です。

対象読者と前提知識

この記事は、GitHubでリポジトリを管理していて、Dependabotの更新PRが多い、依存関係をすぐ更新してよいか迷う、という初学者向けです。

前提知識は、GitHubのPull Requestを見たことがあり、package.jsonrequirements.txtのような依存関係ファイルがあることを知っている程度で問題ありません。ここでは主に、通常のバージョン更新とセキュリティ更新を分けて考えます。

3人による授業形式の会話

生徒りくちゃん・疑問を感じている

生徒りくちゃん

Dependabotが更新PRを作ってくれるのは分かるのですが、cooldownという言葉は何を待っているのでしょうか?

MAO先生・説明中

MAO先生

結論から言うと、cooldownは新しい依存関係のバージョンが出た直後に、通常更新PRをすぐ出さず、少し時間を置く仕組みなのです。

生徒うみちゃん・疑問を感じている

生徒うみちゃん

でもさ、新しいなら早く入れた方がいいじゃん!待つと古いままになって危なくない?

MAO先生・注意している

MAO先生

よい疑問です。ただし、今回の既定cooldownはversion updates向けです。脆弱性に対応するsecurity updatesは別で、GitHubの説明ではすぐにPRが作成されます。

生徒りくちゃん・興味深く聞いている

生徒りくちゃん

つまり、便利機能や通常のバージョンアップは少し待ち、危険な脆弱性対応は待たない、という整理なのですね!

MAO先生・笑顔

MAO先生

その通りです。よく気づきましたね!新しいリリース直後は、壊れたパッケージや不審な公開に気づくまで少し時間がかかることがあります。そこで通常更新は短く待つ、という考え方です。

生徒うみちゃん・興味深く聞いている

生徒うみちゃん

じゃあ、全部7日とか30日とか待たせれば安全ってこと?

MAO先生・説明中

MAO先生

そこは目的次第です。待ちすぎると、通常の修正や改善も遅れます。安定重視なら長め、更新追従を重視するなら短めなど、プロジェクトの性質に合わせるのがよいケースもあるのです。

生徒りくちゃん・疑問を感じている

生徒りくちゃん

設定しなくても、GitHub.comでは3日間のcooldownが既定で入るのでしょうか?

MAO先生・自信のある表情

MAO先生

はい。GitHubの2026年7月14日の公式Changelogでは、Dependabot version updatesは新しいリリースから少なくとも3日待ってからPRを作る、という既定動作が案内されています。

生徒うみちゃん・自信のある表情

生徒うみちゃん

じゃあ更新PRが来たら、もう3日待ったんだから確認なしでmergeしていいじゃん!

MAO先生・困っている

MAO先生

それは早とちりです。cooldownは入口の安全策であって、テストやリリースノート確認の代わりではありません。PRの差分、CI、破壊的変更の有無は必ず確認しましょう。

コード・操作手順・具体例

1. Dependabot version updatesを有効にする基本例

Dependabot version updatesは、リポジトリの**.github/dependabot.yml**で設定します。次はnpm依存関係を週1回確認する基本例です。

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"

この設定は、依存関係の通常更新PRを作るための例です。秘密情報や認証情報をこのファイルへ直接書かないでください。

2. cooldownを明示して調整する例

既定の3日より長く待ちたい場合は、cooldownを明示できます。次の例は、通常は7日待ち、メジャーアップデートだけ14日待つ設定例です。

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    cooldown:
      default-days: 7
      semver-major-days: 14

この例は考え方を示すものです。実際には、利用しているパッケージマネージャー、リリース頻度、テスト体制に合わせて調整します。

3. 一部の依存関係だけ対象にする例

includeexcludeを使うと、cooldownを適用する依存関係を絞れます。次の例では、@example/から始まる依存関係は7日待ち、@example/urgent-libは待たずに通常更新対象へ戻します。

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    cooldown:
      default-days: 7
      include:
        - "@example/*"
      exclude:
        - "@example/urgent-lib"

公式資料では、excludeincludeより優先されると説明されています。重要な依存関係を除外する場合は、なぜ除外するのかをチーム内で残しておくと後から確認しやすくなります。

4. 更新PRが来たときの確認手順

cooldownを設定していても、更新PRの確認は必要です。初学者は、次の順番で見ると判断しやすくなります。

1. PRの対象パッケージ名と更新前後のバージョンを見る
2. Dependabotが載せたリリースノートや変更点を見る
3. CIや自動テストの結果を見る
4. 破壊的変更、設定変更、削除予定の機能がないか確認する
5. 問題があれば保留し、必要なら検証環境で試す

特に、認証、課金、外部公開、データ削除に関わる依存関係では、更新PRを自動mergeだけに任せず、影響範囲を確認してください。

5. セキュリティ更新と通常更新を分けて扱う

Dependabot security updatesは、脆弱性対応のための更新PRです。通常のversion updatesとは目的が違います。

version updates:
  目的: 新機能、改善、通常のバージョン追従
  cooldown: 既定で3日待つ

security updates:
  目的: 既知の脆弱性への対応
  cooldown: 既定cooldownの対象外

待つべき更新と急ぐべき更新を分けると、慌ててmergeするリスクと、必要な対応を遅らせるリスクの両方を減らせます。

よくある誤解や失敗

cooldownがあるから安全確認は不要だと思ってしまう

cooldownは、新しいリリース直後のリスクを少し下げる仕組みです。テスト、差分確認、リリースノート確認の代わりにはなりません。

security updatesも遅れると思ってしまう

GitHubの公式説明では、既定cooldownはversion updatesに適用され、security updatesはすぐにPRが作成されます。脆弱性対応は通常更新と分けて確認します。

待機日数を長くすれば常に安全だと思ってしまう

長く待つほど、通常の改善やバグ修正の取り込みも遅れます。安定性、更新頻度、テスト体制のバランスを見て決めることが大切です。

dependabot.ymlに秘密情報を書いてしまう

プライベートレジストリを扱う場合でも、トークンやパスワードの値を直接書かないでください。GitHubの仕組みやシークレット管理の公式手順に従ってください。

自動mergeだけに任せてしまう

依存関係更新は便利に自動化できますが、業務に影響するパッケージでは、CIだけでなく画面確認や主要操作の確認が必要になることがあります。

Q&A

Q. 何も設定しなくてもcooldownは効きますか?

A. GitHub.comのDependabot version updatesでは、公式Changelogにより既定で3日間のcooldownが案内されています。より細かく調整したい場合は、dependabot.ymlcooldownを設定します。

Q. すべてのパッケージマネージャーで同じ指定が使えますか?

A. default-daysは対応するパッケージマネージャーで広く使えますが、semver-major-daysなどのSemVer別設定は、対応状況を公式のoptions referenceで確認してください。

Q. セキュリティ更新も7日待つ設定にできますか?

A. この記事で扱う既定cooldownはversion updates向けです。脆弱性対応のsecurity updatesは目的が違うため、同じ感覚で遅らせる前提にしない方が安全です。

Q. 小さな個人サイトでも設定する価値はありますか?

A. あります。依存関係更新PRが多すぎて確認が雑になる場合は、更新頻度、open PR数、cooldownを調整すると、落ち着いて確認しやすくなります。

要点まとめ

  • cooldownは、通常の依存関係更新PRを少し待ってから作る仕組みです。
  • GitHub.comでは、Dependabot version updatesに既定で3日間のcooldownが入ります。
  • security updatesは脆弱性対応のため、既定cooldownの対象外としてすぐにPRが作成されます。
  • dependabot.ymlで、待機日数や対象依存関係を調整できます。
  • 安全な運用には、cooldownだけでなく、テスト、差分確認、リリースノート確認が必要です。

授業に登場する3人については、MAO先生のIT授業 キャラクター紹介で確認できます。

公式資料・参考資料

内容に合うCTA

依存関係更新は、自動化すると便利ですが、いつ待つかいつ急ぐか誰が何を確認するかを決めておかないと、更新PRが積み上がりやすくなります。

小規模チームや業務システムで、Dependabot設定、GitHub運用、セキュリティ更新の確認手順を整理したい場合は、MAO工房へご相談ください。

MAO工房に相談できます

依存関係更新の運用ルールを相談できます

Dependabotの設定、更新PRの確認手順、セキュリティ更新と通常更新の扱い分けなど、小規模チームでも続けやすい運用づくりを支援します。

  • ✓ Dependabot設定を現状に合わせて整理
  • ✓ 更新PRの確認手順を明文化
  • ✓ セキュリティ更新の優先度も設計