跳至主要内容
REST API 现在已进行版本控制。 更多信息,请参阅“关于 API 版本控制”。

用于依赖项提交的 REST API 端点

使用 REST API 提交依赖项。

关于依赖项提交

您可以使用 REST API 提交项目的依赖项。这使您可以将依赖项(例如,在编译或构建软件时解析的依赖项)添加到 GitHub 的依赖项图功能中,从而更全面地了解项目的所有依赖项。

依赖项图显示了您使用 API 提交的任何依赖项,以及从代码仓库中的清单或锁定文件中标识的任何依赖项(例如,JavaScript 项目中的package-lock.json文件)。有关查看依赖项图的更多信息,请参阅“浏览代码仓库的依赖项”。

提交的依赖项将接收 Dependabot 警报和 Dependabot 安全更新,以应对任何已知的漏洞。您只会收到来自 GitHub 安全公告数据库支持的生态系统之一的依赖项的 Dependabot 警报。有关这些生态系统的更多信息,请参阅“关于 GitHub 安全公告数据库”。对于通过依赖项提交 API 提交的传递依赖项,如果可用更新,Dependabot 将自动打开拉取请求以更新父依赖项。

提交的依赖项将显示在依赖项审查中,但不会显示在您组织的依赖项洞察中。

注意

依赖项审查 API 和依赖项提交 API 协同工作。这意味着依赖项审查 API 将包含通过依赖项提交 API 提交的依赖项。

您可以以快照的形式提交依赖项。快照是一组与提交 SHA 和其他元数据关联的依赖项,它反映了提交的代码仓库的当前状态。您可以选择使用预制操作或创建自己的操作,以便在每次构建项目时都以所需的格式提交依赖项。更多信息,请参阅“使用依赖项提交 API”。

您可以提交多组依赖项以包含在您的依赖项图中。REST API 使用快照的job.correlator属性和detector.name类别来确保显示每个工作流的最新提交。correlator属性本身是您用于保持独立提交不同的主要字段。例如correlator可以是操作运行中可用两个变量的简单组合:<GITHUB_WORKFLOW> <GITHUB_JOB>

创建代码仓库的依赖项快照

创建一个代码仓库依赖项的新快照。

经过身份验证的用户必须具有对代码仓库的访问权限。

OAuth 应用令牌和个人访问令牌(经典)需要repo范围才能使用此端点。

“创建代码仓库的依赖项快照”的细粒度访问令牌

此端点适用于以下细粒度令牌类型:

细粒度令牌必须具有以下权限集

  • “内容”代码仓库权限(写入)

“创建代码仓库的依赖项快照”的参数

标头
名称、类型、说明
accept 字符串

建议设置为application/vnd.github+json

路径参数
名称、类型、说明
owner 字符串 必填

代码仓库的帐户所有者。名称不区分大小写。

repo 字符串 必填

代码仓库的名称,不带.git扩展名。名称不区分大小写。

主体参数
名称、类型、说明
version 整数 必填

代码仓库快照提交的版本。

job 对象 必填
名称、类型、说明
id 字符串 必填

作业的外部 ID。

correlator 字符串 必填

Correlator 提供一个用于分组随时间提交的快照的键。计算代码仓库的当前依赖项时,只会考虑给定job.correlatordetector.name组合的最新提交的快照。Correlator 应该足够唯一,以区分您运行的给定“波次”CI 工作流的所有检测运行。如果您使用的是 GitHub Actions,则此值的一个很好的默认值可能是连接在一起的环境变量 GITHUB_WORKFLOW 和 GITHUB_JOB。如果您使用的是构建矩阵,则还需要添加其他键来区分矩阵变化中的每个提交。

html_url 字符串

作业的 URL。

sha 字符串 必填

与此依赖项快照关联的提交 SHA。最大长度:40 个字符。

ref 字符串 必填

触发此快照的代码仓库分支。

detector 对象 必填

对所用检测器的描述。

名称、类型、说明
name 字符串 必填

所用检测器的名称。

version 字符串 必填

所用检测器的版本。

url 字符串 必填

所用检测器的 URL。

metadata 对象

用户自定义元数据,用于存储特定领域的 信息,最多8个键值对,值必须为标量。

manifests 对象

一系列的包清单,它们是由文件中声明的或表示一组逻辑相关的依赖项的集合。

名称、类型、说明
key 对象

用户自定义键,用于表示manifests 中的一个项目。

名称、类型、说明
name 字符串 必填

清单的名称。

file 对象
名称、类型、说明
source_location 字符串

清单文件相对于 Git 仓库根目录的路径。

metadata 对象

用户自定义元数据,用于存储特定领域的 信息,最多8个键值对,值必须为标量。

resolved 对象

已解析的包依赖项集合。

名称、类型、说明
key 对象

用户自定义键,用于表示resolved 中的一个项目。

名称、类型、说明
package_url 字符串

依赖项的包 URL (PURL)。更多详情请参见 https://github.com/package-url/purl-spec

metadata 对象

用户自定义元数据,用于存储特定领域的 信息,最多8个键值对,值必须为标量。

relationship 字符串

表示依赖项是由该清单直接请求的,还是另一个依赖项的依赖项。

可以是以下之一:directindirect

scope 字符串

表示依赖项是主要构建工件(运行时)所需的,还是仅用于开发的。此规范的未来版本可能会允许更细粒度的范围。

可以是以下之一:runtimedevelopment

dependencies 字符串数组

直接子依赖项的包 URL (PURL) 数组。

scanned 字符串 必填

扫描快照的时间。

“创建仓库依赖项快照”的 HTTP 响应状态码

状态码描述
201

已创建

“创建仓库依赖项快照”的代码示例

请求示例

post/repos/{owner}/{repo}/dependency-graph/snapshots
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/dependency-graph/snapshots \ -d '{"version":0,"sha":"ce587453ced02b1526dfb4cb910479d431683101","ref":"refs/heads/main","job":{"correlator":"yourworkflowname_youractionname","id":"yourrunid"},"detector":{"name":"octo-detector","version":"0.0.1","url":"https://github.com/octo-org/octo-repo"},"scanned":"2022-06-14T20:25:00Z","manifests":{"package-lock.json":{"name":"package-lock.json","file":{"source_location":"src/package-lock.json"},"resolved":{"@actions/core":{"package_url":"pkg:/npm/%40actions/[email protected]","dependencies":["@actions/http-client"]},"@actions/http-client":{"package_url":"pkg:/npm/%40actions/[email protected]","dependencies":["tunnel"]},"tunnel":{"package_url":"pkg:/npm/[email protected]"}}}}}'

响应

状态:201
{ "id": 12345, "created_at": "2018-05-04T01:14:52Z", "message": "仓库的依赖项结果已成功更新。", "result": "SUCCESS" }