{{< details >}}
- Tier: 旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
针对此端点的每个调用都必须认证。
创建依赖列表导出
{{< history >}}
- 引入于极狐GitLab 16.4,使用名为
merge_sbom_api
的功能标志。默认启用。 - 在极狐GitLab 16.7 中 GA。功能标志
merge_sbom_api
被移除。
{{< /history >}}
为流水线中检测到的所有项目依赖项创建新的 CycloneDX JSON 导出。
如果经过身份验证的用户没有权限读取依赖项,该请求将返回 403 Forbidden
状态码。
SBOM 导出只能由导出的作者访问。
POST /projects/:id/dependency_list_exports
POST /groups/:id/dependency_list_exports
POST /pipelines/:id/dependency_list_exports
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 经过身份验证的用户可以访问的项目、群组或流水线的 ID。 |
export_type |
string | 是 | 导出的格式。请参阅导出类型以获取接受的值的列表。 |
send_email |
boolean | 否 | 设置为 true 时,当导出完成时,向请求导出的用户发送电子邮件通知。 |
curl --request POST --header "PRIVATE-TOKEN: <private_token>" "https://gitlab.example.com/api/v4/pipelines/1/dependency_list_exports" --data "export_type=sbom"
创建的依赖列表导出将在 expires_at
字段中指定的时间自动删除。
示例响应:
{
"id": 2,
"status": "running",
"has_finished": false,
"export_type": "sbom",
"send_email": false,
"expires_at": "2025-04-06T09:35:38.746Z",
"self": "http://gitlab.example.com/api/v4/dependency_list_exports/2",
"download": "http://gitlab.example.com/api/v4/dependency_list_exports/2/download"
}
导出类型
可以以不同文件格式请求导出。某些格式仅适用于特定对象。
导出类型 | 描述 | 可用对象 |
---|---|---|
dependency_list |
一个标准的 JSON 对象,列出作为键值对的依赖项。 | 项目 |
sbom |
CycloneDX 1.4 材料清单 | 流水线 |
json_array |
包含组件对象的扁平 JSON 数组。 | 群组 |
csv |
逗号分隔值 (CSV) 文档。 | 项目、群组 |
获取单个依赖列表导出
获取单个依赖列表导出。
GET /dependency_list_exports/:id
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 依赖列表导出的 ID。 |
curl --header "PRIVATE-TOKEN: <private_token>" "https://gitlab.example.com/api/v4/dependency_list_exports/2"
当依赖列表导出正在生成时,状态码为 202 Accepted
,当它准备好时,状态码为 200 OK
。
示例响应:
{
"id": 4,
"has_finished": true,
"self": "http://gitlab.example.com/api/v4/dependency_list_exports/4",
"download": "http://gitlab.example.com/api/v4/dependency_list_exports/4/download"
}
下载依赖列表导出
下载单个依赖列表导出。
GET /dependency_list_exports/:id/download
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 依赖列表导出的 ID。 |
curl --header "PRIVATE-TOKEN: <private_token>" "https://gitlab.example.com/api/v4/dependency_list_exports/2/download"
如果依赖列表导出尚未完成或未找到,则响应为 404 Not Found
。
示例响应:
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"serialNumber": "urn:uuid:aec33827-20ae-40d0-ae83-18ee846364d2",
"version": 1,
"metadata": {
"tools": [
{
"vendor": "Gitlab",
"name": "Gemnasium",
"version": "2.34.0"
}
],
"authors": [
{
"name": "Gitlab",
"email": "support@gitlab.com"
}
],
"properties": [
{
"name": "gitlab:dependency_scanning:input_file",
"value": "package-lock.json"
}
]
},
"components": [
{
"name": "com.fasterxml.jackson.core/jackson-core",
"purl": "pkg:maven/com.fasterxml.jackson.core/jackson-core@2.9.2",
"version": "2.9.2",
"type": "library",
"licenses": [
{
"license": {
"id": "MIT",
"url": "https://spdx.org/licenses/MIT.html"
}
},
{
"license": {
"id": "BSD-3-Clause",
"url": "https://spdx.org/licenses/BSD-3-Clause.html"
}
}
]
}
]
}