依存関係グラフについて
依存関係グラフは、リポジトリに格納されているマニフェストおよびロック ファイル、および 依存関係送信 API を使用してリポジトリに送信された依存関係の概要です。 それぞれのリポジトリについて、以下が表示されます:の依存関係、すなわちリポジトリが依存するエコシステムとパッケージ。
依存関係ごとに、 脆弱性の重大度を確認できます。 検索バーを使用して、特定の依存関係を検索することもできます。 依存関係は、脆弱性の重大度によって自動的に並べ替えられます。
GitHub Enterprise Server を使っても、依存関係のライセンス情報は取得されず、依存関係に関する情報、リポジトリに依存するリポジトリとパッケージは計算されません。
既定のブランチでサポートされているマニフェストまたはロック ファイルを変更または追加するコミットを GitHub Enterprise Server に、プッシュすると、依存関係グラフは自動的に更新されます。
サポートされているエコシステムとマニフェスト ファイルについては、「依存関係グラフでパッケージ エコシステムをサポート」を参照してください。
さらに、依存関係送信 API を使用して、マニフェストやロック ファイルの分析で依存関係グラフがサポートされていないエコシステムであっても、任意のパッケージ マネージャーやエコシステムから依存関係を送信することができます。 依存関係送信 API を使用してプロジェクトに送信された依存関係には、送信に使用された検出機能と、それらが送信された日時が表示されます。 依存関係送信 API の詳細については、「Dependency Submission API を使用する」を参照してください。
デフォルトブランチをターゲットとする、依存関係の変更を含むPull Requestを作成すると、GitHubは依存関係グラフを使ってそのPull Requestに依存関係のレビューを追加します。 それらは、依存関係が脆弱性を含んでいるか、もしそうならその脆弱性が修復されているバージョンを示しています。 詳しくは、「依存関係の確認について」を参照してください。
少なくともリポジトリへの読み取りアクセス権がある場合は、GitHub UI または GitHub REST API を使って、リポジトリの依存関係グラフを SPDX 互換のソフトウェア部品表 (SBOM) としてエクスポートできます。 詳しくは、「リポジトリのソフトウェア部品表のエクスポート」を参照してください。
依存関係グラフの利用
Enterprise 所有者は、Enterprise の 依存関係グラフとDependabot alertsを構成できます。 詳細については、「企業の依存関係グラフの有効化」と「エンタープライズ向けの Dependabot の有効化」を参照してください。
依存関係グラフの構成について詳しくは、「依存関係グラフを設定する」をご覧ください。
含まれる依存関係
依存関係グラフには、サポートされているエコシステムのマニフェストファイルとロックファイル またはそれに相当するファイルに記載されている、リポジトリのすべての依存関係と、依存関係送信 API を使用して送信された すべての依存関係が含まれます。 これには、次のものが含まれます。
- マニフェストまたはロック ファイルで明示的に定義されている、または 依存関係送信 API を使って送信された直接依存関係
- 直接依存関係の間接依存関係。推移的な依存関係、または下位の依存関係とも言う。
依存関係グラフでは、間接依存関係が識別されます。ロックファイルから間接的な依存関係を識別します。 エコシステムにロック ファイルがない場合は、多くのエコシステムの推移的な依存関係を解決する、事前に作成されたアクションを使用することができます。 詳しくは、「Dependency Submission API を使用する」を参照してください。
GitHub Enterprise Server を使用して環境内の依存関係を理解する方法の詳細については、「サプライ チェーンのセキュリティについて」を参照してください。
依存関係グラフの使用
依存関係グラフを使用する目的は、次のとおりです。
- コードが依存しているリポジトリを調べること。 詳しくは、「リポジトリの依存関係を調べる」を参照してください。
- リポジトリの脆弱な依存関係を表示・更新すること。 詳しくは、「Dependabot アラートについて」を参照してください。
- Pull Request中の脆弱性がある依存関係に関する情報を見ること。 詳しくは、「プルリクエスト内の依存関係の変更をレビューする」を参照してください。
参考資料
- Wikipedia の「依存関係グラフ」
- リポジトリの依存関係を調べる
- 「Dependabot アラートの表示と更新」
- 脆弱性のある依存関係の検出のトラブルシューティング