依存関係グラフについて
依存関係グラフは、リポジトリに� �納されているマニフェストおよびロック ファイルの概要です。 それぞれのリポジトリについて、以下が表示されます:依存関係、すなわちリポジトリが依存するエコシステ� とパッケージ。 GitHub Enterprise Server は、依存関係に関する情� �、リポジトリに依存するリポジトリとパッケージを計算しません。
GitHub Enterprise Server に、デフォルト ブランチでサポートされているマニフェストもしくはロック ファイルを変更もしくは追� するコミットをプッシュすると、依存関係グラフは自動的に更新されます。サポートされているエコシステ� とマニフェスト ファイルに関する情� �については以下の「サポートされているパッケージエコシステ� 」を参照してく� さい。
デフォルトブランチをターゲットとする、依存関係の変更を含むPull Requestを作成すると、GitHubは依存関係グラフを使ってそのPull Requestに依存関係のレビューを追� します。 それらは、依存関係が脆弱性を含んでいるか、もしそうならその脆弱性が修復されているバージョンを示しています。 詳細については、「依存関係レビューについて」を参照してく� さい。
依存関係グラフの利用
依存関係グラフの構成について詳しくは、「依存関係グラフを設定する」をご覧く� さい。
Enterprise の所有者は、エンタープライズの依存関係グラフと Dependabot alerts を構成できます。 詳細については、「エンタープライズの依存関係グラフの有効化」および「エンタープライズの Dependabot の有効化」を参照してく� さい。
含まれる依存関係
依存関係グラフには、マニフェストとロック ファイルで詳しく説明されているリポジトリのすべての依存関係、またはサポートされているエコシステ� を使用して送信されたすべての依存関係が含まれます。 これには次のものが含まれます
- マニフェストまたはロック ファイルに明示的に定義されている直接依存関係
- 直接依存関係の間接依存関係。推移的な依存関係、または下位の依存関係とも言う。
依存関係グラフでは、ロックファイルから間接的な依存関係を識別します。
GitHub Enterprise Server を使用して環境内の依存関係を理解する方法の詳細については、「サプライ チェーンのセキュリティについて」を参照してく� さい。
依存関係グラフの使用
依存関係グラフを使用する目的は、次のとおりです。
- コードが依存しているリポジトリを調べること。 詳細については、「ポジトリの依存関係を調べる」を参照してく� さい。
- リポジトリの脆弱な依存関係を表示・更新すること。 詳細については、「Dependabot alerts について」を参照してく� さい。
- Pull Request中の脆弱性がある依存関係に関する情� �を見ること。 詳細については、「pull request 内の依存関係の変更をレビューする」を参照してく� さい。
サポートされているパッケージエコシステ�
推奨されるフォーマットでは、直接および間接の依存関係すべてに使用されるバージョンを明示的に定義しています。 これらの形式を使う� �合、依存関係グラフはより正確になります。 これは、現在のビルドのセットアップも反� し、依存関係グラフが直接および間接の依存関係の両方で脆弱性を� �告できるようにしてくれます。
| パッケージ マネージャー | 言語 | 推奨される形式 | サポートされているすべての形式 |
| --- | --- | --- | ---| | Composer             | PHP           | composer.lock | composer.json、composer.lock | | NuGet | .NET 言語 (C#、F#、VB)、C++  |   .csproj、.vbproj、.nuspec、.vcxproj、.fsproj |  .csproj、.vbproj、.nuspec、.vcxproj、.fsproj、packages.config | | Go モジュール | Go | go.sum | go.mod、go.sum | | Maven | Java、Scala |  pom.xml  | pom.xml  | | npm | JavaScript |            package-lock.json | package-lock.json、package.json| | pip             | Python                    | requirements.txt、pipfile.lock | requirements.txt、pipfile、pipfile.lock、setup.py[‡] | | RubyGems             | Ruby           | Gemfile.lock | Gemfile.lock、Gemfile、*.gemspec | | Yarn | JavaScript | yarn.lock | package.json、yarn.lock |
[‡] setup.py ファイル内に Python の依存関係を列挙した� �合、ユーザーはプロジェクト内のすべての依存関係を解析し、列挙することができない� �合があります。
参考資料
- Wikipedia の「依存関係グラフ」
- 「リポジトリの依存関係を調べる」
- 「Dependabot alerts の表示と更新」
- 脆弱性のある依存関係の検出のトラブルシューティング