跳至主要内容

为您的代码库配置自动依赖项提交

您可以使用自动依赖项提交来提交代码库中的传递依赖项数据。这使您可以使用依赖关系图分析这些传递依赖项。

谁可以使用此功能?

代码库所有者、组织所有者、安全管理员以及具有 **管理员** 角色的用户

关于自动依赖项提交

注意

自动依赖项提交目前仅支持 Maven。

依赖关系图分析代码库中的清单和锁定文件,以帮助用户了解代码库所依赖的依赖项。但是,在某些生态系统中,传递依赖项的解析是在构建时发生的,GitHub 无法仅根据代码库内容自动发现所有依赖项。

为代码库启用自动依赖项提交后,GitHub 会自动识别代码库中的传递依赖项,并将这些依赖项使用依赖项提交 API 提交到 GitHub。然后,您可以使用依赖关系图对这些依赖项进行报告。

使用自动依赖项提交会计入您的 GitHub Actions 分钟数。有关更多信息,请参阅“关于 GitHub Actions 的计费”。

或者,您可以选择为自动依赖项提交配置自托管运行器或 GitHub 托管的大型运行器。有关更多信息,请参阅“使用自托管运行器进行自动依赖项提交”和“使用 GitHub 托管的大型运行器进行自动依赖项提交”。

先决条件

必须为代码库启用依赖关系图,才能启用自动依赖项提交。

您还必须为代码库启用 GitHub Actions 才能使用自动依赖项提交。有关更多信息,请参阅“管理代码库的 GitHub Actions 设置”。

启用自动依赖项提交

代码库管理员可以通过遵循此过程中概述的步骤为代码库启用或禁用自动依赖项提交。

组织所有者可以使用安全配置为多个代码库启用自动依赖项提交。有关更多信息,请参阅“创建自定义安全配置”。

  1. 在 GitHub 上,导航到代码库的主页。

  2. 在您的代码库名称下,单击 **设置**。如果您看不到“设置”选项卡,请选择****下拉菜单,然后单击**设置**。

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  3. 在侧边栏的“安全”部分,单击** 代码安全和分析**。

  4. 在“依赖关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择**已启用**。

为代码库启用自动依赖项提交后,GitHub 将

  • 监视代码库所有分支上根目录中 pom.xml 文件的更改。
  • 对每次更改执行自动依赖项提交。

您可以通过查看代码库的**操作**选项卡来查看有关自动工作流的详细信息。

注意

启用选项后,首次推送至pom.xml文件时将自动提交。

使用自托管运行器进行自动依赖项提交

您可以配置自托管运行器来运行自动依赖项提交作业,而不是使用 GitHub Actions 基础设施。

  1. 在仓库或组织级别配置一个或多个自托管运行器。有关更多信息,请参阅“关于自托管运行器”和“添加自托管运行器”。自托管运行器必须在 Linux 或 macOS 上运行,并且必须安装 Docker。
  2. 为每个希望自动依赖项提交使用的运行器分配dependency-submission标签。有关更多信息,请参阅“使用标签与自托管运行器”。
  3. 在侧边栏的“安全”部分,单击** 代码安全和分析**。
  4. 在“依赖关系图”下,点击“自动依赖项提交”旁边的下拉菜单,然后选择**已为带标签的运行器启用**。

启用后,自动依赖项提交作业将在自托管运行器上运行,除非

  • 自托管运行器不可用。
  • 没有任何使用dependency-submission标签标记的运行器组。

注意

使用自托管运行器时,您需要添加对 Maven 服务器设置文件的访问权限,以允许依赖项提交工作流连接到私有注册表。来自私有注册表的依赖项将在下一次pom.xml更新中包含在依赖项树中。有关 Maven 服务器设置文件的更多信息,请参阅 Maven 文档中的安全和部署设置

使用 GitHub 托管的大型运行器进行自动依赖项提交

GitHub 团队或 GitHub Enterprise Cloud 用户可以使用大型运行器来运行自动依赖项提交作业。

  1. 在组织级别配置一个名为dependency-submission的大型运行器。有关更多信息,请参阅“将大型运行器添加到组织”。
  2. 授予您的仓库对运行器的访问权限。有关更多信息,请参阅“允许仓库访问大型运行器”。
  3. 在“依赖关系图”下,点击“自动依赖项提交”旁边的下拉菜单,然后选择**已为带标签的运行器启用**。

自动依赖项提交故障排除

自动依赖项提交目前仅支持 Maven。此功能使用 Maven 依赖项树提交操作。有关更多信息,请参阅 GitHub Marketplace 中Maven 依赖项树依赖项提交操作的文档。如果您的项目使用非标准 Maven 配置,则可能无法正确生成依赖项并将其提交到依赖项图。

进一步阅读