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

此版本的 GitHub Enterprise 已停止服务 2020-11-12. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

About the dependency graph

Detailed information about the dependency graph, the ecosystems it supports, and how it determines which packages a repository depends on.

本文内容

Dependency graph availability

The dependency graph is available for every repository that defines dependencies in a supported package ecosystem using a supported file format.

您的站点管理员必须启用 your GitHub Enterprise Server instance 的漏洞依赖项的安全警报,然后您才可使用此功能。 For more information, see "Enabling alerts for vulnerable dependencies on GitHub Enterprise Server."

About the dependency graph

The dependency graph is a summary of the manifest and lock files stored in a repository. For each repository, it shows dependencies, that is, the ecosystems and packages it depends on. GitHub Enterprise Server does not calculate information about dependents, the repositories and packages that depend on a repository.

When you push a commit to GitHub Enterprise Server that changes or adds a supported manifest or lock file to the default branch, the dependency graph is automatically updated. For information on the supported ecosystems and manifest files, see "Supported package ecosystems" below.

Dependencies included

The dependency graph includes all the dependencies of a repository that are detailed in the manifest and lock files, or their equivalent, for supported ecosystems. This includes:

  • Direct dependencies, that are explicitly defined in a manifest or lock file
  • Indirect dependencies of these direct dependencies, also known as transitive dependencies or sub-dependencies

The dependency graph identifies indirect dependencies from the lock files.

Using the dependency graph

You can use the dependency graph to:

Enabling the dependency graph

If the dependency graph is not available in your system, your site administrator can enable the dependency graph and security alerts. For more information, see "Enabling alerts for vulnerable dependencies on GitHub Enterprise Server."

When the dependency graph is first enabled, any manifest and lock files for supported ecosystems are parsed immediately. The graph is usually populated within minutes but this may take longer for repositories with many dependencies. Once enabled, the graph is automatically updated with every push to the repository.

Supported package ecosystems

The recommended formats explicitly define which versions are used for all direct and all indirect dependencies. If you use these formats, your dependency graph is more accurate. It also reflects the current build set up and enables the dependency graph to report vulnerabilities in both direct and indirect dependencies.

Package managerLanguagesRecommended formatsAll supported formats
ComposerPHPcomposer.lockcomposer.json, composer.lock
dotnet CLI.NET languages (C#, C++, F#, VB).csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
Python PIPPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile.lock, setup.py*
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
YarnJavaScriptyarn.lockpackage.json, yarn.lock

Note: If you list your Python dependencies within a setup.py file, we may not be able to parse and list every dependency in your project.

Further reading