# 关于依赖关系图

您可以使用依赖关系图来识别项目的所有依赖项。 依赖关系图支持一系列流行的软件包生态系统。

<!--Marketing-LINK: From /features/security and /features/security/software-supply-chain pages "How GitHub's dependency graph is generated".-->

## 关于依赖关系图

依赖项关系图是存储在存储库中的清单和锁定文件以及使用 依赖项提交 API 提交给存储库的任何依赖项的摘要。 对于每个存储库，它显示：

* 依赖项、它依赖的生态系统和包
* 依赖项，是指依赖于它的存储库和包

对于每个依赖项，可以看到版本、许可证信息、包含它的清单文件，以及它是否具有已知漏洞。 对于支持传递性依赖项的包生态系统，将显示依赖关系状态。你可以单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="Show dependency options" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>，然后选择“Show paths”，以查看引入该依赖项的传递路径。

还可以使用搜索栏搜索特定依赖项。 依赖项会自动排序，存在漏洞的包排在最上方。

有关受支持生态系统和清单文件的信息，请参阅 [依赖项关系图支持的包生态系统](/zh/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems)。

当创建包含针对默认分支的依赖项更改的拉取请求时，GitHub 使用依赖关系图向拉取请求添加依赖项审查。 它们指示依赖项是否包含漏洞，如果是，则指示已修复漏洞的依赖项版本。 有关详细信息，请参阅“[关于依赖项评审](/zh/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)”。

## 如何生成依赖项关系图

依赖项关系图通过分析存储库中的清单和锁定文件来自动分析依赖项。 还可以自行提交数据。 有关详细信息，请参阅“[依赖项图如何识别依赖项](/zh/code-security/concepts/supply-chain-security/dependency-graph-data)”。

## 依赖关系图可用性

存储库管理员可以启用或禁用存储库的依赖关系图。 有关详细信息，请参阅 [管理存储库的安全和分析设置](/zh/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)。

存储库管理员可以启用或禁用存储库的依赖关系图。 请参阅“[启用依赖项关系图](/zh/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-the-dependency-graph)”。

## 依赖项和“使用者”数据

对于公共存储库，依赖项关系图列出了依赖项。 这些是依赖于存储库或它发布的包的其他公共存储库。 不报告专用存储库的此信息。

某些存储库在“ **代码** ”选项卡的边栏中有一个“使用者”部分。本部分显示对找到的包的公共引用数，并显示依赖项目的一些所有者的头像。单击本部分中的任何项即可转到依赖项图的 **“依赖项** ”选项卡。

您的存储库将在满足以下条件时包含一个“用于”部分：

* 为存储库启用依赖项关系图。
* 存储库包含一个在受支持的包生态系统上发布的包。 请参阅“[依赖项关系图支持的包生态系统](/zh/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems)”。
* 在该生态系统中，你的包有一个指向存储源代码的\_公共\_存储库的链接。
* 超过 100 个存储库依赖于你的包。

![存储库的“使用者”部分的屏幕截图，显示“1340 万”的摘要，以及 8 个头像和“+13,435,819”的详细信息。](/assets/images/help/repository/used-by-section.png)

“Used by（使用者）”部分表示仓库中的单个包。 如果你对包含多个包的仓库拥有管理员权限，你可以选择“Used by（使用者）”部分表示哪个包。 请参阅“[更改存储库的“使用者”数据](/zh/code-security/how-tos/view-and-interpret-data/change-used-by-data)”。

## 如何使用依赖项图处理任务

您可以使用依赖关系图：

* 浏览代码所依赖的存储库，以及依赖于它的存储库。 有关详细信息，请参阅“[探索仓库的依赖项](/zh/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository)”。
* 在单个仪表板中查看组织仓库中使用的依赖项摘要。 有关详细信息，请参阅“[查看组织中依赖项的见解](/zh/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-dependencies-in-your-organization#viewing-organization-dependency-insights)”。
* 查看和更新仓库中有漏洞的依赖项。 有关详细信息，请参阅“[关于 Dependabot 警报](/zh/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)”。
* 查看拉取请求中有漏洞依赖项的相关信息。 有关详细信息，请参阅“[审核拉取请求中的依赖项变更](/zh/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)”。
* 导出软件物料清单（SBOM），以便进行审核或合规性目的。 这是项目依赖项的正式计算机可读清单。 请参阅“[导出存储库的软件物料清单](/zh/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/exporting-a-software-bill-of-materials-for-your-repository)”。

## 延伸阅读

* [依赖图](https://en.wikipedia.org/wiki/Dependency_graph)在维基百科上的介绍
* [探索仓库的依赖项](/zh/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository)
* [查看和更新 Dependabot 警报](/zh/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)
* [脆弱性依赖检测](/zh/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)