关于依赖关系图
依赖项关系图是存储在存储库 的存储库的依赖关系。 对于每个存储库,它显示 依赖项,即它所依赖的生态系统和包。 GitHub AE 不计算有关依赖项、存储库和依赖于存储库的包的信息。
向 GitHub AE 推送提交以更改支持的清单或锁定文件或将其添加到默认分支时,依赖项关系图会自动更新。有关支持的生态系统和清单文件的信息,请参阅下面的“支持的包生态系统”。
当创建包含针对默认分支的依赖项更改的拉取请求时,GitHub 使用依赖关系图向拉取请求添加依赖项审查。 它们指示依赖项是否包含漏洞,如果是,则指示已修复漏洞的依赖项版本。 有关详细信息,请参阅“关于依赖项评审”。
依赖关系图可用性
企业所有者可以为企业配置 Dependabot alerts。 有关详细信息,请参阅 “为企业启用 Dependabot”。
包含的依赖项
依赖项关系图包含支持的生态系统中的清单和锁定文件(或等效文件)中详述的存储库的所有依赖项。 这包括:
- 直接依赖项,这些依赖项是在清单或锁定文件中显式定义的
- 这些直接依赖项的间接依赖项,也称为过渡依赖项或子依赖项
依赖项关系图通过锁定文件显式标识间接依赖项从锁定文件 测试和调试代码。
有关 GitHub AE 如何帮助你了解环境中的依赖项的详细信息,请参阅“关于供应链安全性”。
使用依赖关系图
您可以使用依赖关系图:
- 浏览代码所依赖的存储库。 有关详细信息,请参阅“探索仓库的依赖项”。
- 查看和更新仓库中有漏洞的依赖项。 有关详细信息,请参阅“关于 Dependabot 警报”。
支持的包生态系统
建议的格式明确定义哪些版本用于所有直接和所有间接依赖项。 如果使用这些格式,依赖项关系图会更准确。 它还反映当前的生成设置,并且使依赖项关系图能够报告直接和间接依赖项中的漏洞。
| 程序包管理器 | 语言 | 推荐格式 | 所有支持的格式 |
| --- | --- | --- | ---| | Cargo | Rust | Cargo.lock
| Cargo.toml
、Cargo.lock
| | 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
| | GitHub Actions 工作流 [1] | YAML | .yml
, .yaml
| .yml
, .yaml
| | Go 模块 | Go | go.mod
| 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
[2] | | Python Poetry | Python | poetry.lock
| poetry.lock
、pyproject.toml
| | RubyGems | Ruby | Gemfile.lock
| Gemfile.lock
、Gemfile
、*.gemspec
| | Yarn | JavaScript | yarn.lock
| package.json
、yarn.lock
|
[1] GitHub Actions 工作流必须位于要识别为清单的存储库的 .github/workflows/
目录中。 使用 jobs[*].steps[*].uses
或 jobs.<job_id>.uses
语法引用的任何操作或工作流都将被分析为依赖项。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。
[2] 如果你在 setup.py
文件中列出 Python 依赖项,我们可能无法分析和列出项目中的每个依赖项。
注意:GitHub Actions 工作流程依赖项显示在依赖项关系图中,以供参考。 GitHub Actions 工作流程目前不支持 Dependabot 警报。
延伸阅读
- Wikipedia 上的“依赖项关系图”
- "探索仓库的依赖项"
- "查看和更新 Dependabot 警报"
- "漏洞依赖项检测疑难解答"