用于依赖项提交的 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 字符串建议设置为 |
名称、类型、说明 |
---|
owner 字符串 必填代码仓库的帐户所有者。名称不区分大小写。 |
repo 字符串 必填代码仓库的名称,不带 |
名称、类型、说明 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
version 整数 必填代码仓库快照提交的版本。 | |||||||||||||||||||||
job 对象 必填 | |||||||||||||||||||||
|
名称、类型、说明 |
---|
id 字符串 必填作业的外部 ID。 |
correlator 字符串 必填Correlator 提供一个用于分组随时间提交的快照的键。计算代码仓库的当前依赖项时,只会考虑给定 |
html_url 字符串作业的 URL。 |
sha
字符串 必填与此依赖项快照关联的提交 SHA。最大长度:40 个字符。
ref
字符串 必填触发此快照的代码仓库分支。
detector
对象 必填对所用检测器的描述。
detector
的属性
名称、类型、说明 |
---|
name 字符串 必填所用检测器的名称。 |
version 字符串 必填所用检测器的版本。 |
url 字符串 必填所用检测器的 URL。 |
metadata
对象用户自定义元数据,用于存储特定领域的 信息,最多8个键值对,值必须为标量。
manifests
对象一系列的包清单,它们是由文件中声明的或表示一组逻辑相关的依赖项的集合。
manifests
的属性
名称、类型、说明 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
key 对象用户自定义键,用于表示 | ||||||||||||||||||
|
名称、类型、说明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
name 字符串 必填清单的名称。 | |||||||||
file 对象 | |||||||||
|
名称、类型、说明 |
---|
source_location 字符串清单文件相对于 Git 仓库根目录的路径。 |
metadata
对象用户自定义元数据,用于存储特定领域的 信息,最多8个键值对,值必须为标量。
resolved
对象已解析的包依赖项集合。
resolved
的属性
名称、类型、说明 | ||||||
---|---|---|---|---|---|---|
key 对象用户自定义键,用于表示 | ||||||
|
名称、类型、说明 |
---|
package_url 字符串依赖项的包 URL (PURL)。更多详情请参见 https://github.com/package-url/purl-spec。 |
metadata 对象用户自定义元数据,用于存储特定领域的 信息,最多8个键值对,值必须为标量。 |
relationship 字符串表示依赖项是由该清单直接请求的,还是另一个依赖项的依赖项。 可以是以下之一: |
scope 字符串表示依赖项是主要构建工件(运行时)所需的,还是仅用于开发的。此规范的未来版本可能会允许更细粒度的范围。 可以是以下之一: |
dependencies 字符串数组直接子依赖项的包 URL (PURL) 数组。 |
scanned
字符串 必填扫描快照的时间。
“创建仓库依赖项快照”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
201 | 已创建 |
“创建仓库依赖项快照”的代码示例
请求示例
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]"}}}}}'
响应