关于自动依赖项提交
Note
Maven 当前仅支持自动依赖项提交。
依赖项关系图分析存储库中的清单和锁定文件,以帮助用户了解存储库所依赖的依赖项。 但是,在某些生态系统中,可转移依赖项的解析发生在生成时,GitHub 无法仅基于存储库的内容自动发现所有依赖项。
在为存储库启用自动依赖项提交时,GitHub 会自动确定存储库中的可转移依赖项,并使用 依赖项提交 API 将这些依赖项提交到 GitHub。 然后,可使用依赖项关系图报告这些依赖项。
使用自动依赖项提交将计入 GitHub Actions 分钟。 有关详细信息,请参阅“关于 GitHub Actions 的计费”。
或者,可以选择为自动依赖项提交配置自托管运行器或 GitHub 托管的 大型运行器。 有关详细信息,请参阅“将自托管运行器用于自动依赖项提交”和“将 GitHub 托管的大型运行器用于自动依赖项提交”。
先决条件
必须为存储库启用依赖项关系图才能启用自动依赖项提交。
还必须为存储库启用 GitHub Actions 才能使用自动依赖项提交。 有关详细信息,请参阅“管理存储库的 GitHub Actions 设置”。
启用自动依赖项提交
存储库管理员可以按照此过程所述的步骤为存储库启用或禁用自动依赖项提交。
组织所有者可使用安全配置为多个存储库启用自动依赖项提交。 有关详细信息,请参阅“Creating a custom security configuration”。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
-
在边栏的“安全性”部分中,单击“ 代码安全性和分析”。
-
在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择“已启用”。
为存储库启用自动依赖项提交后,GitHub 将:
- 监视存储库所有分支上存储库根目录中
pom.xml
文件的更改。 - 对每次更改执行自动依赖项提交。
可以通过查看存储库的“操作”选项卡来查看有关自动工作流运行的详细信息。
Note
启用选项后,第一次推送到 pom.xml
文件时将自动提交。
将自托管运行器用于自动依赖项提交
可以将自托管运行器配置为运行自动依赖项提交作业,而不是使用 GitHub Actions 基础结构。
- 在存储库或组织级别预配一个或多个自托管运行器。 有关详细信息,请参阅“关于自托管运行程序”和“添加自托管的运行器”。 自托管运行器必须在 Linux 或 macOS 上运行,并且必须安装 Docker。
- 为希望自动依赖项提交使用的每个运行器分配
dependency-submission
标签。 有关详细信息,请参阅“将标签与自托管运行程序结合使用”。 - 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。
- 在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择“为标记的运行器启用”。
启用后,自动依赖项提交作业将在自托管运行器上运行,除非:
- 自托管运行器不可用。
- 没有任何使用
dependency-submission
标签标记的运行器组。
Note
使用自托管运行器时,需要添加对 Maven 服务器设置文件的访问权限,以允许依赖项提交工作流连接到专用注册表。 专用注册表中的依赖项将包含在下一个 pom.xml
更新的依赖项树中。 有关 Maven 服务器设置文件的详细信息,请参阅 Maven 文档中的安全性和部署设置。
使用 GitHub 托管的 大型运行器 进行自动依赖项提交
GitHub Team 或 GitHub Enterprise Cloud 用户可以使用 大型运行器 来运行自动依赖项提交作业。
- 使用名称
dependency-submission
在组织级别预配大型运行器。 有关详细信息,请参阅“将 大型运行器 托管的运行器添加到组织”。 - 授予存储库对运行器的访问权限。 有关详细信息,请参阅“允许存储库访问 大型运行器”。
- 在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择“为标记的运行器启用”。
自动依赖项提交故障排除
Maven 当前仅支持自动依赖项提交。 此功能使用 Maven 依赖关系树提交操作。 有关详细信息,请参阅 GitHub Marketplace 中 Maven 依赖关系树依赖项提交操作的文档。 如果项目使用非标准 Maven 配置,则它可能无法正确生成依赖项,并将其提交到依赖项关系图。
延伸阅读
- "关于供应链安全性"
- “使用依赖项提交 API”