1
0
mirror of synced 2025-12-22 11:26:57 -05:00
Files
docs/content/github/visualizing-repository-data-with-graphs/about-the-dependency-graph.md
Melanie Yarbrough 91d3857341 [DO NOT MERGE] Universe 2020 Day 1: December 8, 2020 (#16480)
* Update README

* [Universe] Dark mode (#16545)

* Dark mode updates (#16696)

* [Universe] Corporate sponsors (#16457)

* Dependency review beta (#16563)

* Add placeholder topic file

* Revert change I didn't make

I'm not sure where this change came from or why it's showing up in my PR here but I didn't make this change and it's not part of Dependency Review so I'm reverting it.

* Un-revert previous change

OK I see what happened there. I was comparing the PR to main rather than the Universe megabranch, hence it showed a change I didn't make.
This commit undoes the change I do not want to revert on the megabranch.

* Update image to add the Checks tab

* Finish updating topic to mention DR

* Fix check errors

* Fix another versioning error

* Add a sentence about supported ecosystems

* Add review changes

* Remove Further reading topics in same category

As suggested by James, I've removed the links to topics that are in the same `/collaborating-with-issues-and-pull-requests/` category as this topic.

* Update content/github/managing-security-vulnerabilities/about-managing-vulnerable-dependencies.md

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

* Update content/github/managing-security-vulnerabilities/about-managing-vulnerable-dependencies.md

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

* Update content/github/managing-security-vulnerabilities/about-managing-vulnerable-dependencies.md

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

* Update content/github/managing-security-vulnerabilities/about-managing-vulnerable-dependencies.md

* Updates in the light of Maya's review

* Remove use of "exploit" in description

* Change 'dependency review summary' to 'dependency review'

See PR review comment from Maya.

* Mention that the age of the dependency is given

* Update screenshots to latest GUI

* Add details of dependency ordering within a DR

* Update content/github/collaborating-with-issues-and-pull-requests/reviewing-dependency-changes-in-a-pull-request.md

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

* Update content/github/managing-security-vulnerabilities/about-managing-vulnerable-dependencies.md

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

* Update content/github/visualizing-repository-data-with-graphs/about-the-dependency-graph.md

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>

* [Universe 2020] New audit log REST API endpoint (#16699)

* Minimal updates for preview

*  API previews 

* Update beta note

*  Update API previews 

*  Update previews 

* Add draft section for git events

* Clean API previews

* More fixes + API previews

* Address review comments + update API previews

* Mention cursor-based pagination

* Update content/rest/overview/resources-in-the-rest-api.md

Co-authored-by: Jeff Saracco <jeffsaracco@github.com>

* Temporarily revert API previews

* Small tweaks from review comments + API previews

* revert json schemas

* Updating OpenAPI descriptions (#16776)

* Updating OpenAPI descriptions

* Add decorated OpenAPI schema files

Co-authored-by: Jeff Saracco <jeffsaracco@github.com>
Co-authored-by: skedwards88 <skedwards88@github.com>
Co-authored-by: github-openapi-bot <69533958+github-openapi-bot@users.noreply.github.com>

* [Universe 2020] GitHub Actions: Workflow visualization (#16629)

* initial empty commit

* replace image used only for dotcom

* add new image and version usage

* add new image and version usage

* add new image and version usage

* add new image and version usage, delete unneeded image

* add new image and version usage, fix incorrect image

* add new image and version usage

* add new image and version usage

* add new image and version usage

* add new image and version usage

* update screenshot update

* add new image and version usage

* add new image and version usage

* update text

* update images and fix list numbering

* add step with graph

* Add missing versioning

* add overview of visualization

* fix title to match filename

* add beta note

* update wording

* Restructuring packages (#16731)

* restructuring packages

* moving more content

* moving more content

* fixing the toc for guides

* removing CR from the landing page

* adjusting qs

* updating npm

* enhancing guides

* Update updating-github-insights.md

* fixing link problems

* fixing link problems

* redirecting the redirects

* another change

* fixing the guides landing page

* add packages quickstart

* moving CR content

* adding some descriptive text

* add packages landing page

* adding guide content back

* update popular articles based on data

* fix caps on product name

* try removing product from front matter

* Update content/packages/quickstart.md

Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>

* Update content/packages/quickstart.md

Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>

* add node package instructions to quickstart

* fixing links and adding redirect

* fixing redirects

* renaming to container guides

* renaming to container guides and fixing reusables

* adding context and about section to CR

* removign landign page extra titles and descriptions

* reverting the packages

* updating link

* Apply suggestions from code review

Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>

* updating

* update test to reflect redesigned product landing page

* Add private vs public clarification

* Fix borked test

* filter out standalone category files from test

Co-authored-by: Cynthia Rich <crichID@github.com>
Co-authored-by: Cynthia Rich <crichID@users.noreply.github.com>
Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>
Co-authored-by: Sarah Schneider <sarahs@github.com>
Co-authored-by: Jason Etcovitch <jasonetco@github.com>

* Add discussions video
See https://github.com/github/docs-internal/pull/16759

* Remove typos

* update article name in test

Co-authored-by: Laura Coursen <lecoursen@github.com>
Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com>
Co-authored-by: hubwriter <hubwriter@github.com>
Co-authored-by: James Fletcher <42464962+jf205@users.noreply.github.com>
Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com>
Co-authored-by: Jeff Saracco <jeffsaracco@github.com>
Co-authored-by: skedwards88 <skedwards88@github.com>
Co-authored-by: github-openapi-bot <69533958+github-openapi-bot@users.noreply.github.com>
Co-authored-by: Meg Bird <megbird@github.com>
Co-authored-by: Leona B. Campbell <3880403+runleonarun@users.noreply.github.com>
Co-authored-by: Cynthia Rich <crichID@github.com>
Co-authored-by: Cynthia Rich <crichID@users.noreply.github.com>
Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>
Co-authored-by: Sarah Schneider <sarahs@github.com>
Co-authored-by: Jason Etcovitch <jasonetco@github.com>
2020-12-08 12:20:02 -05:00

90 lines
9.1 KiB
Markdown

---
title: About the dependency graph
intro: 'Detailed information about the dependency graph, the ecosystems it supports, and how it determines which packages a repository depends on.'
versions:
free-pro-team: '*'
enterprise-server: '*'
---
### Dependency graph availability
The dependency graph is available for every{% if currentVersion == "free-pro-team@latest" %} public{% endif %} repository that defines dependencies in a supported package ecosystem using a supported file format.{% if currentVersion == "free-pro-team@latest" %} Repository administrators can also set up the dependency graph for private repositories.{% endif %}
{% data reusables.repositories.enable-security-alerts %}
### 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{% if currentVersion == "free-pro-team@latest" %}:
- Dependencies, the ecosystems and packages it depends on
- Dependents, the repositories and packages that depend on it{% else %} dependencies, that is, the ecosystems and packages it depends on. {% data variables.product.prodname_ghe_server %} does not calculate information about dependents, the repositories and packages that depend on a repository.{% endif %}
When you push a commit to {% data variables.product.product_name %} that changes or adds a supported manifest or lock file to the default branch, the dependency graph is automatically updated.{% if currentVersion == "free-pro-team@latest" %} In addition, the graph is updated when anyone pushes a change to the repository of one of your dependencies.{% endif %} For information on the supported ecosystems and manifest files, see "[Supported package ecosystems](#supported-package-ecosystems)" below.
{% if currentVersion == "free-pro-team@latest" %}
When you create a pull request containing changes to dependencies that targets the default branch, {% data variables.product.prodname_dotcom %} 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 "[Reviewing dependency changes in a pull request](/github/collaborating-with-issues-and-pull-requests/reviewing-dependency-changes-in-a-pull-request)."
{% endif %}
### 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{% if currentVersion == "free-pro-team@latest" %} either explicitly from a lock file or by checking the dependencies of your direct dependencies. For the most reliable graph, you should use lock files (or their equivalent) because they define exactly which versions of the direct and indirect dependencies you currently use. 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{% else %} from the lock files{% endif %}.
{% if currentVersion == "free-pro-team@latest" %}
### 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.{% endif %}
### Using the dependency graph
You can use the dependency graph to:
- Explore the repositories your code depends on{% if currentVersion == "free-pro-team@latest" %}, and those that depend on it{% endif %}. For more information, see "[Exploring the dependencies of a repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-of-a-repository)." {% if currentVersion == "free-pro-team@latest" %}
- View a summary of the dependencies used in your organization's repositories in a single dashboard. For more information, see "[Viewing insights for your organization](/articles/viewing-insights-for-your-organization#viewing-organization-dependency-insights)."{% endif %}
- View and update vulnerable dependencies for your repository. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."{% if currentVersion == "free-pro-team@latest" %}
- See information about vulnerable dependencies in pull requests. For more information, see "[Reviewing dependency changes in a pull request](/github/collaborating-with-issues-and-pull-requests/reviewing-dependency-changes-in-a-pull-request)."{% endif %}
### Enabling the dependency graph
{% if currentVersion == "free-pro-team@latest" %}To generate a dependency graph, {% data variables.product.product_name %} needs read-only access to the dependency manifest and lock files for a repository. The dependency graph is automatically generated for all public repositories and you can choose to enable it for private repositories. For information about enabling or disabling it for private repositories, see "[Exploring the dependencies of a repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-of-a-repository)."{% endif %}
{% if enterpriseServerVersions contains currentVersion and currentVersion ver_gt "enterprise-server@2.21" %}If the dependency graph is not available in your system, your site administrator can enable the dependency graph and {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[Enabling alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/configuration/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server)."{% endif %}
{% if enterpriseServerVersions contains currentVersion and currentVersion ver_lt "enterprise-server@2.22" %} 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 {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/configuration/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server)."
{% endif %}
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{% if currentVersion == "free-pro-team@latest" %} and every push to other repositories in the graph{% endif %}.
### 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.{% if currentVersion == "free-pro-team@latest" %} Indirect dependencies that are inferred from a manifest file (or equivalent) are excluded from the checks for vulnerable dependencies.{% endif %}
| Package manager | Languages | Recommended formats | All supported formats |
| --- | --- | --- | ---|
| Composer | PHP | `composer.lock` | `composer.json`, `composer.lock` |
| `dotnet` CLI | .NET languages (C#, C++, F#, VB) | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj`, `packages.config` |
| Maven | Java, Scala | `pom.xml` | `pom.xml` |
| npm | JavaScript | `package-lock.json` | `package-lock.json`, `package.json`|
| Python PIP | Python | `requirements.txt`, `pipfile.lock` | `requirements.txt`, `pipfile.lock`, `setup.py`* |
| RubyGems | Ruby | `Gemfile.lock` | `Gemfile.lock`, `Gemfile`, `*.gemspec` |
| Yarn | JavaScript | `yarn.lock` | `package.json`, `yarn.lock` |
{% note %}
**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.
{% endnote %}
### Further reading
- "[Dependency graph](https://en.wikipedia.org/wiki/Dependency_graph)" on Wikipedia
- "[Exploring the dependencies of a repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-of-a-repository)"{% if currentVersion == "free-pro-team@latest" %}
- "[Viewing insights for your organization](/github/setting-up-and-managing-organizations-and-teams/viewing-insights-for-your-organization)"
- "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)"
- "[Troubleshooting the detection of vulnerable dependencies](/github/managing-security-vulnerabilities/troubleshooting-the-detection-of-vulnerable-dependencies)"{% endif %}