Dependabot security updates について
Dependabot security updates で、リポジトリ内の脆弱性のある依存関係を簡単に修正できます。
Dependabot security updates を有効にすると、リポジトリの依存関係グラフで脆弱性のある依存関係に対して Dependabot アラートが発生すると、Dependabot は自���的にそれを修正しようとします。 詳細については、「Dependabot アラートについて」および「Dependabot セキュリティの更新の構成」を参照してください。
dependabot.yml 構成ファイルをリポジトリに追加すると、Dependabot の動作をカスタマイズできます。これには、更新スケジュール、pull request 設定、監視する依存関係などが含まれます。 詳しくは、「dependabot.yml ファイルについて」をご覧ください。 次に、Dependabot にリポジトリが依存する依存関係をセキュリティで保護する方法を指示するように、このファイルのオプションを構成します。
サポートされているリポジトリとエコシステムについては、「Dependabot でサポートされているエコシステムとリポジトリ」を参照してください。
メモ
セキュリティ アップデートのために Dependabot によって生成された関連するプル リクエストがマージされると、アラートが閉じられること以外には、dependabot.yml ファイルで指定された設定と Dependabot のセキュリティ アラートの間に相互作用はありません。
Dependabot は、コミット署名がリポジトリの要件ではない場合でも、既定では独自のコミットに署名します。 検証済みコミットの詳細については、「コミット署名の検証について」を参照してください。
メモ
リポジトリに対して Dependabot security updates が有効になっている場合、Dependabot は、使用可能なパッチを持つすべての開いている Dependabot アラートを解決するために pull request を自動的に開こうとします。 どのアラートに対して Dependabot が pull request を開くかカスタマイズする場合は、Dependabot security updates を [無効] のままにし、オート トリアージ ルールを作成する必要があります。 詳しくは、「自動トリアージ ルールをカスタマイズして Dependabot アラートの優先度を設定する」をご覧ください。
GitHub は、最近公開された GitHub セキュリティ アドバイザリによって公開された脆弱性に影響されるリポジトリに Dependabot alerts を送信できます。 詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」をご覧ください。
Dependabot は、リポジトリの依存関係グラフを中断することなく、脆弱性のある依存関係を修正バージョンにアップグレードできるかどうかを確認します。 次に、 Dependabot はプルリクエストを発生させて、パッチを含む最小バージョンに依存関係を更新し、プルリクエストを Dependabot アラートにリンクするか、アラートのエラーを報告します。 詳しくは、「Dependabot エラー」をご覧ください。
Dependabot security updates 機能は、依存関係グラフと Dependabot alerts を有効にしているリポジトリで使用できます。 完全な依存関係グラフで識別されたすべての脆弱性のある依存関係について、Dependabot アラートが表示されます。 ただし、セキュリティアップデートプログラムは、マニフェストファイルまたはロックファイルで指定されている依存関係に対してのみトリガーされます。 詳しくは、「依存関係グラフについて」をご覧ください。
メモ
メモ: npm の場合、明示的に定義された依存関係をセキュリティで保護されたバージョンに更新するための pull request が Dependabot によって生成されます。これが、親の依存関係で不要になったサブ依存関係を削除したりすることを意味していたとしてもそうです。 他のエコシステムの場合、Dependabot は、親依存関係の更新も必要になる場合、間接的なまたは推移的な依存関係を更新できません。 詳しくは、「Dependabot エラー」をご覧ください。
関連する機能 Dependabot version updates を有効にして、Dependabot が古い依存関係を検出するたびに、マニフェストを最新バージョンの依存関係に更新するプルリクエストを生成させることができます。 詳しくは、「GitHub Dependabot のバージョンアップデートについて」をご覧ください。
Dependabot によって pull request が発生する場合、その pull request は、"セキュリティ" 更新プログラムか "バージョン" アップデートを対象としたものである可能性があります。
-
Dependabot security updates は、既知の脆弱性を持つ依存関係を更新するのに役立つ、自動化された pull request です。
-
Dependabot version updates は、依存関係に脆弱税がなくても、依存関係を最新の状態に維持する、自動化された pull request です。 バージョン更新の状態をチェックするには、リポジトリの [Insights] タブに移動し、[Dependency Graph] と [Dependabot] を選びます。
_Dependabot security updates_ を有効にした場合、構成の一部が、_Dependabot version updates_ に対して作成されたプル リクエストにも影響する可能性があります。 これは、構成の設定の一部が両方のタイプの更新プログラムに共通しているためです。 詳しくは、「[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/customizing-dependabot-security-prs)」をご覧ください。
Dependabot によって開かれた pull request は、アクションを実行するワークフローをトリガーできます。 詳しくは、「GitHub ActionsでのDependabotの自動化」をご覧ください。
Dependabot security updates を使うと、GitHub Actions の脆弱な依存関係を修正できます。 セキュリティ更新プログラムが有効になっている場合、ワークフローで使用されている脆弱な GitHub Actions を修正プログラムが適用された最小バージョンに更新するための pull request が、Dependabot によって自動的に生成されます。
セキュリティアップデートのプルリクエストについて
各プルリクエストには、提案された修正を迅速かつ安全に確認してプロジェクトにマージするために必要なすべてのものが含まれています。 これには、リリースノート、変更ログエントリ、コミットの詳細などの脆弱性に関する情報が含まれます。 プルリクエストが解決する脆弱性の詳細は、リポジトリの Dependabot alerts にアクセスできないユーザには表示されません。
セキュリティアップデートを含むプルリクエストをマージすると、対応する Dependabot アラートがリポジトリに対して解決済みとしてマークされます。 Dependabot pull request の詳細については、「依存関係の更新に関するPull Requestを管理する」をご覧ください。
メモ
自動テストと受け入れプロセスを用意しておいて、pull request がマージされる前にチェックが実行されるようにすることをお勧めします。 これは特に、アップグレードが提案されたバージョンに追加機能があったり、プロジェクトのコードを破壊するような変更がある場合に重要です。 継続的イ��テグレーションの詳細については、「継続的インテグレーション」を参照してください。
グループ化されたセキュリティ アップデートについて
表示される pull request の数をさらに減らすには、グループ化されたセキュリティ アップデートを使って、(パッケージ エコシステムごとに) 依存関係のセットをまとめてグループ化できます。 その後、Dependabot により、グループ内のできるだけ多くの依存関係を一度に安全なバージョンに更新する、1 つの pull request が生成されます。
セキュリティ アップデートの場合、Dependabot は、特定の条件と構成の下でエコシステムごとに異なるディレクトリからの依存関係のみをグループ化します。 Dependabot では、異なるパッケージ エコシステムからの依存関係はグループ化されず、セキュリティ アップデートはバージョン更新プログラムとグループ化されません。
Dependabot security updates のグループ化された pull request は、以下の方法のいずれかまたは両方で有効にすることができます。
- 使用できるセキュリティ更新プログラムをディレクトリ間やエコシステムごとにできるだけ多くグループ化するには、リポジトリ、または organization の [Advanced Security] の [Global settings] の [Advanced Security] 設定でグループ化を有効にします。
- パッケージ名、開発と運用の依存関係、SemVer レベル、複数のディレクトリにわたるエコシステムごとによるグループ化など、グループ化をより細かく制御するには、リポジトリの
dependabot.yml構成ファイルに構成オプションを追加します。> [!NOTE]
dependabot.ymlファイル内で Dependabot security updates のグループルールを構成した場合、使用できるすべての更新は、指定したルールに従ってグループ化されます。 Dependabot は、Organization またはリポジトリ レベルでグループ化されたセキュリティ アップデートの設定も有効になっている場合、dependabot.ymlで構成されていないディレクトリ間でのみグループ化されます。
詳しくは、「Dependabot セキュリティの更新の構成」をご覧ください。
互換性スコアについて
Dependabot security updates には、互換性スコアが含まれている場合があります。これは、依存関係の更新によってプロジェクトに破壊的変更が発生する可能性があるかどうかを知らせるものです。 これらは、同じセキュリティアップデートプログラムが生成された他のパブリックリポジトリでの CI テストから計算されます。 更新の互換性スコアは、依存関係の特定のバージョンの更新前後で、実行した CI がパスした割合です。
Dependabot updates
の自動非アクティブ化について
リポジトリのメンテナが Dependabot pull request の操作を停止すると、Dependabot はその更新を一時的に停止し、そのことが通知されます。「Dependabot 更新の「プルリクエスト」が生成されなくなりました」を参照してください。
Dependabot セキュリティアップデートの通知について
GitHub で通知をフィルタして、Dependabot セキュリティアップデートを表示できます。 詳しくは、「インボックスからの通知を管理する」をご覧ください。