我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
文章版本: GitHub.com

关于依赖关系图

有关依赖关系图、它支持的生态系统及其如何确定仓库所依赖的软件包的详细信息。

本文内容

依赖关系图可用性

依赖关系图适用于使用支持的文件格式、以支持的包生态系统定义依赖项的每个公共仓库。 仓库管理员也可对私有仓库设置依赖关系图。

关于依赖关系图

The dependency graph is a summary of the manifest and lock files stored in a repository. For each repository, it shows:

  • 依赖项、它依赖的生态系统和包
  • Dependents, the repositories and packages that depend on it

When you push a commit to GitHub that changes or adds a supported manifest or lock file to the default branch, the dependency graph is automatically updated. In addition, the graph is updated when anyone pushes a change to the repository of one of your dependencies. For information on the supported ecosystems and manifest files, see "Supported package ecosystems" below.

包含的依赖项

依赖关系图包括清单和锁定文件中详述的所有依赖项,或支持的生态系统的同等项。 这包括:

  • 在清单或锁定文件中明确定义的直接依赖项
  • 这些直接依赖项的间接依赖项,也称为过渡依赖项或子依赖项

The dependency graph identifies indirect dependencies either explicitly from a lock file or by checking the dependencies of your direct dependencies. 对于最可靠的依赖关系图, 您应该使用锁定文件(或其等效项),因为它们准确地定义了您当前使用的直接和间接依赖项版本。 If you use lock files, you also ensure that all contributors to the repository are using the same versions, which will make it easier for you to test and debug code.

Dependents included

For public repositories, only public repositories that depend on it or on packages that it publishes are reported. This information is not reported for private repositories.

使用依赖关系图

您可以使用依赖关系图:

启用依赖关系图

要生成依赖关系图,GitHub 需要对仓库的依赖项清单和锁定文件的只读访问权限。 依赖关系图自动为所有公共仓库生成,您可以选择为私有仓库启用它。 For information about enabling or disabling it for private repositories, see "Exploring the dependencies of a repository."

首次启用依赖关系图时,将立即剖析受支持的生态系统的任何清单和锁定文件。 依赖关系图通常在几分钟之内填充,但对于依赖项很多的仓库,可能需要更长时间。 Once enabled, the graph is automatically updated with every push to the repository and every push to other repositories in the graph.

支持的包生态系统

建议的格式明确定义哪些版本用于所有直接和所有间接依赖项。 如果使用这些格式,则依赖关系图更准确。 It also reflects the current build set up and enables the dependency graph to report vulnerabilities in both direct and indirect dependencies. Indirect dependencies that are inferred from a manifest file (or equivalent) are excluded from the checks for vulnerable dependencies.

包管理器语言建议的格式所有支持的格式
ComposerPHPcomposer.lock
dotnet CLI.NET 语言(C#、C++、F#、VB).csproj.vbproj.nuspec.vcxproj.fsproj.csproj.vbproj.nuspec.vcxproj.fsprojpackages.config
MavenJava、Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.jsonpackage.json
Python PIPPythonrequirements.txtpipfile.lockrequirements.txtpipfile.locksetup.py*
RubyGemsRubyGemfile.lockGemfile.lockGemfile*.gemspec
YarnJavaScriptyarn.lockpackage.jsonyarn.lock

注:如果在 setup.py 文件中列出 Python 依赖项,我们可能无法剖析和列出项目中的每个依赖项。

延伸阅读

问问别人

找不到要找的内容?

联系我们