Skip to main content

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

About the dependency graph

You can use the dependency graph to identify all your project's dependencies. The dependency graph supports a range of popular package ecosystems.

About the dependency graph

The dependency graph is a summary of the manifest and lock files stored in a repository. 对于每个仓库,它显示 依赖项,即它所依赖的生态系统和包。 GitHub Enterprise Server 不计算有关依赖项、仓库和依赖于仓库的包的信息。

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.

Dependency graph availability

Enterprise owners can configure the dependency graph and Dependabot 警报 for an enterprise. For more information, see "Enabling the dependency graph for your enterprise" and "Enabling Dependabot for your enterprise."

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.

For more information on how GitHub Enterprise Server helps you understand the dependencies in your environment, see "About supply chain security."

Using the dependency graph

You can use the dependency graph to:

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
NuGet.NET languages (C#, F#, VB), C++.csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
pipPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile, pipfile.lock, setup.py[‡]
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
YarnJavaScriptyarn.lockpackage.json, yarn.lock

[‡] 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