Skip to main content

关于依赖关系图

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

谁可以使用此功能?

依赖项关系图适用于以下存储库类型:

  • 公共存储库(默认打开)
  • 私有仓库
  • 前叉

关于依赖关系图

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

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

对于每个依赖项,可以看到许可证信息和漏洞严重程度。 还可以使用搜索栏搜索特定依赖项。 依赖项按漏洞严重程度自动排序。

向 GitHub 推送提交以更改支持的清单或锁定文件或将其添加到默认分支时,依赖项关系图会自动更新。此外,当有人向某个依赖项的存储库推送更改时,该关系图也会更新。

有关受支持的生态系统和清单文件的信息,请参阅 依赖项关系图支持的包生态系统

此外,可以使用 依赖项提交 API 从所选的包管理器或生态系统提交依赖项,即使依赖项关系图不支持使用该生态系统进行清单或锁定文件分析也是如此。 使用 依赖项提交 API 提交到项目的依赖项将显示用于提交的检测器以及提交时间。有关 依赖项提交 API 的详细信息,请参阅“使用依赖项提交 API”。

当创建包含针对默认分支的依赖项更改的拉取请求时,GitHub 使用依赖关系图向拉取请求添加依赖项审查。 它们指示依赖项是否包含漏洞,如果是,则指示已修复漏洞的依赖项版本。 有关详细信息,请参阅“关于依赖项评审”。

如果至少具有对存储库的读取访问权限,则可以通过 GitHub UI 或 GitHub REST API,将存储库的依赖项关系图导出为与 SPDX 兼容的软件物料清单 (SBOM)。 有关详细信息,请参阅“导出存储库的软件物料清单”。

依赖关系图可用性

依赖项关系图是为所有公共存储库自动生成的。 可以选择为分支和专用存储库启用它。 有关详细信息,请参阅 管理存储库的安全和分析设置

存储库管理员还可以为私有存储库设置依赖项关系图。 有关详细信息,请参阅“配置依赖项关系图”。

包含的依赖项

依赖项关系图包含支持的生态系统中的清单和锁定文件(或等效文件)中详述的存储库的所有依赖项,以及使用 依赖项提交 API 提交的任何依赖项。 这包括:

  • 直接依赖项,清单或锁定文件中显式定义或者是使用 依赖项提交 API 提交的直接依赖项
  • 这些直接依赖项的间接依赖项,也称为过渡依赖项或子依赖项

仅当在锁定文件中定义间接依赖项,或使用 依赖项提交 API 提交时,依赖项关系图才会标识间接依赖项。 对于最可靠的依赖关系图, 您应该使用锁定文件(或其等效项),因为它们准确地定义了您当前使用的直接和间接依赖项版本。 如果您使用锁定文件,还要确保仓库的所有贡献者都使用相同的版本,这样更便于您 测试和调试代码。 如果生态系统没有锁定文件,则可以使用预创建操作来解析许多生态系统的可传递依赖项。 有关详细信息,请参阅“使用依赖项提交 API”。

有关 GitHub 如何帮助你了解环境中的依赖项的详细信息,请参阅 关于供应链安全性

包含的依赖关系

对于公共仓库,仅报告依赖于它或它发布的包的公共仓库。 对于私有仓库,不报告此信息。

使用依赖关系图

您可以使用依赖关系图:

其他阅读材料