About the dependency graph
The dependency graph is a summary of the manifest and lock files stored in a repository and any dependencies that are submitted for the repository using the dependency submission API. For each repository, it shows dependencies, the ecosystems and packages it depends on.
GitHub Enterprise Server does not retrieve license information for dependencies, and 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 Dependency graph supported package ecosystems.
Additionally, you can use the dependency submission API to submit dependencies from the package manager or ecosystem of your choice, even if the ecosystem is not supported by dependency graph for manifest or lock file analysis. The dependency graph will display the submitted dependencies grouped by ecosystem, but separately from the dependencies parsed from manifest or lock files. For more information on the dependency submission API, see "Using the dependency submission API."
When you create a pull request containing changes to dependencies that targets the default branch, GitHub uses the dependency graph to add dependency reviews to the pull request. These indicate whether the dependencies contain vulnerabilities and, if so, the version of the dependency in which the vulnerability was fixed. For more information, see About dependency review.
If you have at least read access to the repository, you can export the dependency graph for the repository as an SPDX-compatible, Software Bill of Materials (SBOM), via the GitHub UI or GitHub REST API. For more information, see "Exporting a software bill of materials for your repository."
Dependency graph availability
Enterprise owners can configure the dependency graph and Dependabot alerts for an enterprise. For more information, see "Enabling the dependency graph for your enterprise" and "Enabling Dependabot for your enterprise."
For more information about configuration of the dependency graph, see Configuring the dependency graph.
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, as well as any dependencies that are submitted using the dependency submission API. This includes:
- Direct dependencies, that are explicitly defined in a manifest or lock file or have been submitted using the dependency submission API
- Indirect dependencies of these direct dependencies, also known as transitive dependencies or sub-dependencies
The dependency graph identifies indirect dependencies from the lock files. If your ecosystem does not have lock files, you can use pre-made actions that resolve transitive dependencies for many ecosystems. For more information, see Using the dependency submission API.
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:
- Explore the repositories your code depends on. For more information, see Exploring the dependencies of a repository.
- View and update vulnerable dependencies for your repository. For more information, see About Dependabot alerts.
- See information about vulnerable dependencies in pull requests. For more information, see Reviewing dependency changes in a pull request.