Help us learn about your current experience with the documentation. Take the survey.

依赖列表导出 API

  • 版本:Ultimate
  • 产品:GitLab.com, GitLab Self-Managed, GitLab Dedicated

对此端点的每次调用都需要身份验证。

创建依赖列表导出

为在流水线中检测到的所有项目依赖项创建一个新的 CycloneDX JSON 导出文件。

如果经过身份验证的用户没有 read_dependency 权限,此请求将返回 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 软件物料清单 流水线
cyclonedx_1_6_json 一个 CycloneDX 1.6 软件物料清单 项目
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": "[email protected]"
      }
    ],
    "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/[email protected]",
      "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"
          }
        }
      ]
    }
  ]
}