Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

关于依赖关系图

您可以使用依赖关系图来识别项目的所有依赖项。 依赖关系图支持一系列流行的软件包生态系统。

关于依赖关系图

依赖项关系图是存储在存储库 中的清单和锁定文件的摘要,以及所有提交给使用依赖项提交 API(beta 版) 的存储库的依赖关系。 对于每个存储库,它显示 依赖项,即它所依赖的生态系统和包。 GitHub Enterprise Server 不计算有关依赖项、存储库和依赖于存储库的包的信息。

向 GitHub Enterprise Server 推送提交以更改支持的清单或锁定文件或将其添加到默认分支时,依赖项关系图会自动更新。有关支持的生态系统和清单文件的信息,请参阅下面的“支持的包生态系统”。

此外,可以使用依赖项提交 API(beta 版本)从所选择的包管理器或生态系统提交依赖项,即使该生态系统不受清单或锁定文件分析的依赖关系图支持。 依赖项关系图将显示按生态系统分组的提交依赖项,但与从清单或锁定文件解析的依赖项是分开的。 有关依赖项提交 API 的详细信息,请参阅“使用依赖项提交 API”。

当创建包含针对默认分支的依赖项更改的拉取请求时,GitHub 使用依赖关系图向拉取请求添加依赖项审查。 它们指示依赖项是否包含漏洞,如果是,则指示已修复漏洞的依赖项版本。 有关详细信息,请参阅“关于依赖项审查”。

依赖关系图可用性

企业所有者可以为企业配置 依赖项关系图和 Dependabot alerts。 有关详细信息,请参阅 “为企业启用依赖项关系图和 “为企业启用 Dependabot ”。

有关依赖项关系图配置的详细信息,请参阅“配置依赖项关系图”。

包含的依赖项

依赖项关系图包含支持的生态系统中的清单和锁定文件(或等效文件)中详述的存储库的所有依赖项,以及任何使用依赖项提交 API (beta) 提交的依赖项。 这包括:

  • 直接依赖项,这些依赖项是在清单或锁定文件中显式定义的或是已使用依赖项提交 API (beta) 提交的
  • 这些直接依赖项的间接依赖项,也称为过渡依赖项或子依赖项

依赖项关系图通过锁定文件显式标识间接依赖项从锁定文件 测试和调试代码。

有关 GitHub Enterprise Server 如何帮助你了解环境中的依赖项的详细信息,请参阅“关于供应链安全性”。

使用依赖关系图

您可以使用依赖关系图:

支持的包生态系统

建议的格式明确定义哪些版本用于所有直接和所有间接依赖项。 如果使用这些格式,依赖项关系图会更准确。 它还反映当前的生成设置,并且使依赖项关系图能够报告直接和间接依赖项中的漏洞。

| 程序包管理器 | 语言 | 推荐格式 | 所有支持的格式 | | --- | --- | --- | ---| | Cargo | Rust | Cargo.lock | Cargo.tomlCargo.lock | | Composer | PHP | composer.lock | composer.jsoncomposer.lock | | NuGet | .NET 语言 (C#, F#, VB), C++ | .csproj.vbproj.nuspec.vcxproj.fsproj | .csproj.vbproj.nuspec.vcxproj.fsprojpackages.config | | GitHub Actions wirkflows[†] | YAML | .yml.yaml | .yml, .yaml | | Go 模块 | Go | go.sum | go.modgo.sum | | Maven | Java, Scala | pom.xml | pom.xml | | npm | JavaScript | package-lock.json | package-lock.jsonpackage.json| | pip | Python | requirements.txtpipfile.lock | requirements.txtpipfilepipfile.locksetup.py[‡] | | Python Poetry | Python | poetry.lock | poetry.lockpyproject.toml | | RubyGems | Ruby | Gemfile.lock | Gemfile.lockGemfile*.gemspec | | Yarn | JavaScript | yarn.lock | package.jsonyarn.lock |

[†] GitHub Actions 工作流必须位于要识别为清单的存储库的 .github/workflows/ 目录中。 使用 jobs[*].steps[*].usesjobs.<job_id>.uses 语法引用的任何操作或工作流都将被分析为依赖项。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。

[‡] 如果你在 setup.py 文件中列出你的 Python 依赖项,我们可能无法分析和列出你项目中的每个依赖项。

注意:GitHub Actions 工作流程依赖项显示在依赖项关系图中,以供参考。 GitHub Actions 工作流程目前不支持 Dependabot 警报。

你可以使用依赖项提交 API (beta) 将所选的包管理器或生态系统中的依赖项添加到依赖项关系图,即使所选的生态系统不在上述受支持的生态系统列表中也可如此。 依赖项关系图将显示按生态系统分组的已提交依赖项,但与从清单或锁定文件解析的依赖项是分开的。 你只会收到来自 GitHub Advisory Database 支持的生态系统之一的依赖项的 Dependabot alerts。 有关依赖项提交 API 的详细信息,请参阅“使用依赖项提交 API”。

延伸阅读