GitHub Enterprise Server によって� �告された依存関係の検出結果は、他のツールから返される結果とは異なる� �合があります。 これには理由があり、GitHub がプロジェクトの依存関係をどのように決定するかを理解しておくと便利です。
依存関係グラフは、マニフェストとロックファイルの依存関係のみを検索しますか?
依存関係グラフには、環境で明示的に宣言されている依存関係に関する情� �が含まれます。 つまり、マニフェストまたはロックファイルで指定されている依存関係です。 依存関係グラフには、通常、マニフェストファイル内の依存関係の依存関係を調べることにより、ロックファイルで指定されていない� �合でも、推移的な依存関係も含まれます。
"ゆるい" 依存関係が依存関係グラフに含まれることはありません。 「ゆるい」依存関係は、パッケージマネージャーのマニフェストまたはロックファイルで参照されるのではなく、あるソースからコピーされ、リポジトリに直接またはアーカイブ (ZIP ファイルや JAR ファイルなど) に含まれてチェックインされる個々のファイルです。
チェック: リポジトリのマニフェストまたはロックファイル内で指定されていない、コンポーネントに対する見落とされている依存関係はありますか?
依存関係グラフは、変数を使用して指定された依存関係を検出しますか?
依存関係グラフは、マニフェストが GitHub にプッシュされるときにマニフェストを分析します。 したがって、依存関係グラフはプロジェクトのビルド環境にアクセスできないため、マニフェスト内で使用される変数を解決できません。 マニフェスト内で変数を使用して名前、またはより一般的には依存関係のバージョンを指定する� �合、その依存関係は依存関係グラフに含まれません。
チェック: マニフェストで、名前またはバージョンに変数を使用して、見落とされている依存関係が宣言されていますか?
依存関係グラフのデータに影響する制限はありますか?
はい、依存関係グラフの制限には 2 つのカテゴリがあります。
-
処理制限
これらは GitHub 内に表示される依存関係グラフに影響を与え、Dependabot alerts が作成されないようにします。
サイズが 0.5 MB を超えるマニフェストは、Enterprise アカウントに対してのみ処理されます。 他のアカウントの� �合、0.5 MB を超えるマニフェストは無視され、Dependabot alerts は作成されません。
デフォルト設定では、GitHub はリポジトリごとに 20 個を超えるマニフェストを処理しません。 Dependabot alerts は、この制限を超えるマニフェストに対しては作成されません。 制限を増やす必要がある� �合は、サイト管理者 にお問い合わせく� さい。
-
視覚化の制限
これらは、GitHub 内の依存関係グラフに表示される内容に影響します。 た� し、作成された Dependabot alerts には影響しません。
リポジトリの依存関係グラフの依存関係ビューには、100 個のマニフェストのみが表示されます。 通常、これは上記の処理制限よりも大幅に高いので十分です。 処理制限が100 個を超える状況でも、GitHub 内に表示されていないマニフェストに対して Dependabot alerts が作成されます。
チェック: 0.5 MB を超えるマニフェスト ファイル、または多数のマニフェストがあるリポジトリに見落とされている依存関係はありませんか?
参考資料
- "依存関係グラフについて"
- 「リポジトリのセキュリティと分析設定を管理する」
- 「Troubleshooting the detection of vulnerable dependencies」(脆弱な依存関係の検出に関するトラブルシューティング)