Dependabot について
このクイックスタート ガイドでは、Dependabot の設定と有効化、リポジトリに対する Dependabot alerts と更新プログラムの表示について説明します。
Dependabot は、依存関係の管理に役立つ 3 つの異なる機能で構成されています。
- Dependabot alerts: リポジトリで使われている依存関係の脆弱性についてユーザーに通知します。
- Dependabot security updates: 使われている依存関係のうち、既知のセキュリティ脆弱性があるものを更新するための pull request を自動的に生成します。
- Dependabot version updates: 依存関係を最新に保つための pull request を自動的に生成します。
前提条件
GitHub Enterprise Server で Dependabot alerts 機能を使う前に、確実にエンタープライズ管理者がインスタンスに対して Dependabot を有効にする必要があります。 詳しくは、「エンタープライズ向けの Dependabot の有効化」を参照してください。
このガイドでは、デモ リポジトリを使って、依存関係の脆弱性が Dependabot によってどのように検出されるのか、GitHub のどこで Dependabot alerts を確認できるのか、また、これらのアラートを調査、修正、または無視する方法を説明します。
まず、デモ リポジトリをフォークする必要があります。
- https://github.com/dependabot/demo に移動します。
- ページの上部の右側にある [ フォーク] をクリックします。
- 所有者を選び (GitHub 個人用アカウントを選ぶことができます)、リポジトリ名を入力します。 リポジトリのフォークについて詳しくは、「リポジトリをフォークする」を参照してください。
- [フォークの作成] をクリックします。
リポジトリに対する Dependabot の有効化
「前提条件」でフォークしたリポジトリで、以下の手順に従う必要があります。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。
-
[コードのセキュリティと分析] の Dependabot alerts の右側にある Dependabot alerts、Dependabot security updates、Dependabot version updates の [有効化] をクリックします。
-
必要に応じて、Dependabot version updates を試したい場合は、 .github/dependabot.yml をクリックします。 リポジトリの
/.github
ディレクトリに既定のdependabot.yml
構成ファイルが作成されます。 リポジトリに対して Dependabot version updates を有効にするには、通常、既定のファイルを編集し、変更をコミットすることで、ニーズに合わせてこのファイルを構成します。 例として、「Dependabot のバージョン アップデートの設定」で提供されているスニペットを参照できます。
Note
依存関係グラフがリポジトリに対してまだ有効になっていない場合は、Dependabot を有効にすると、GitHub によって自動的に有効になります。
これらの各 Dependabot 機能の構成について詳しくは、「Dependabot アラートの構成」、「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」、「Dependabot のバージョン アップデートの設定」を参照してください。
リポジトリの Dependabot alerts の表示
リポジトリに対して Dependabot alerts が有効になっている場合は、リポジトリの [セキュリティ] タブで Dependabot alerts を表示できます。 前のセクションでフォークして Dependabot alerts を有効にしたリポジトリを使うことができます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
セキュリティの概要の [脆弱性アラート] サイド バーで、 [Dependabot] をクリックします。 このオプションがない場合は、セキュリティ アラートにアクセスできないため、アクセス権を付与する必要があることを意味します。 詳細については、「リポジトリのセキュリティと分析設定を管理する」を参照してください。
-
[Dependabot alerts] ページで未解決のアラートを確認します。 既定では、このページに、未解決のアラートが一覧表示される [未解決] タブが表示されます ( [解決済み] をクリックすると、解決済みのアラートを表示できます)。
さまざまなフィルターまたはラベルを使って、リスト内の Dependabot alerts をフィルター処理できます。 詳細については、「Dependabot アラートの表示と更新」を参照してください。Dependabot 自動トリアージ ルール を使用して、誤検知アラートや関心のないアラートを除外することもできます。 詳しくは、「Dependabot 自動トリアージ ルールについて」をご覧ください。
-
javascript/package-lock.json
ファイルで [Command Injection in lodash] アラートをクリックします。 アラートの詳細ページに、次の情報が表示されます (情報によっては、すべてのアラートに適用されない場合があることに注意してください)。- Dependabot によって、脆弱性を修正する pull request が作成されたかどうか。 [セキュリティ更新プログラムの確認] をクリックして、推奨されるセキュリティ更新プログラムを確認できます。
- 関連するパッケージ
- 影響を受けるバージョン
- 修正プログラムが適用されたバージョン
- 脆弱性の簡単な説明
-
必要に応じて、ページの右側にある情報を調べることもできます。 スクリーンショットに示されている情報の一部は、すべてのアラートに適用されない場合があります。
- 重要度
- CVSS metrics: CVSS レベルを使って重大度レベルを割り当てています。 詳しくは、「GitHub Advisory Database について」を参照してください。
- タグ
- Weaknesses: 脆弱性に関連する CWE の一覧 (該当する場合)
- CVE ID: 脆弱性の一意の CVE 識別子 (該当する場合)
- GHSA ID: GitHub Advisory Database 上の対応するアドバイザリの一意識別子。 詳しくは、「GitHub Advisory Database について」を参照してください。
- GitHub Advisory Database 上のアドバイザリに移動するオプション
- この脆弱性の影響を受けるすべてのリポジトリを表示するオプション
- GitHub Advisory Database 上のこのアドバイザリの改善を提案するオプション
Dependabot alerts の表示、優先順位付け、並べ替えについて詳しくは、「Dependabot アラートの表示と更新」を参照してください。
Dependabot アラートの修正または無視
GitHub で Dependabot alerts を修正または無視できます。 引き続き、例としてフォークしたリポジトリと前のセクションで説明した "Command Injection in lodash" アラートを使いましょう。
- リポジトリの [Dependabot alerts] タブに移動します。 詳しくは、前述の「リポジトリの Dependabot alerts の表示」セクションを参照してください。
- アラートをクリックします。
javascript/package-lock.json
ファイルで [Command Injection in lodash] アラートをクリックします。- アラートを確認します。 次のようにすることができます。
-
推奨されるセキュリティ更新プログラムを確認するには、 [セキュリティ更新プログラムの確認] をクリックします。 Dependabot によって生成されたセキュリティ修正プログラムの pull request が開きます。
- pull request の説明で、 [コミット] をクリックして、pull request に含まれるコミットを調べることができます。
- また、 [Dependabot のコマンドとオプション] をクリックして、pull request の操作に使うことができるコマンドについて確認できます。
- 依存関係を更新して脆弱性を解決する準備ができたら、プルリクエストをマージしてください。
-
アラートを無視する場合
-
アラートの詳細ページに戻ります。
-
右上隅にある [アラートを無視] をクリックします。
-
アラートを無視する理由を選びます。
-
必要に応じて、無視のコメントを追加します。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。
-
[アラートを無視] をクリックします。 このアラートは、アラート リストの [未解決] タブに表示されなくなり、 [解決済み] タブで確認できます。
-
-
Dependabot alerts の確認と更新について詳しくは、「Dependabot アラートの表示と更新」を参照してください。
トラブルシューティング
次の場合、トラブルシューティングが必要になることがあります。
- Dependabot によって、アラートを修正するための pull request の作成がブロックされている、または
- Dependabot から報告される情報が、期待する内容でない。
詳しくは、「Dependabot エラーのトラブルシューティング」と「脆弱性のある依存関係の検出のトラブルシューティング」を参照してください。
次の手順
Dependabot 更新の構成について詳しくは、「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」と「Dependabot のバージョン アップデートの設定」を参照してください。
組織の Dependabot の構成の詳細については、「Dependabot アラートの構成」を参照してください。
Dependabot によって開かれた pull request の表示について詳しくは、「依存関係の更新に関するPull Requestを管理する」を参照してください。
Dependabot alertsに役立つセキュリティ アドバイザリについて詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」を参照してください。
Dependabot alerts に関する通知の構成について詳しくは、「Dependabot アラートの通知を構成する」を参照してください。