의존성 디렉터리 익스포트 API

Tier: Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

이 엔드포인트로의 모든 호출에는 인증이 필요합니다.

파이프라인 수준의 의존성 디렉터리 익스포트 생성

  • GitLab 16.4에 도입되었습니다. 기본으로 활성화된 merge_sbom_api라는 플래그와 함께.
  • GitLab 16.7에서 일반 사용 가능해짐. 피처 플래그 merge_sbom_api가 제거되었습니다.

파이프라인에서 감지된 모든 프로젝트 의존성에 대한 새로운 CycloneDX JSON 익스포트를 생성합니다.

인증된 사용자가 의존성을 읽을 수 있는 권한이 없는 경우, 이 요청은 403 Forbidden 상태 코드를 반환합니다.

SBOM 익스포트는 익스포트의 저자만 액세스할 수 있습니다.

POST /pipelines/:id/dependency_list_exports
속성 유형 필수 여부 설명
id 정수 인증된 사용자가 액세스 권한을 가진 파이프라인의 ID입니다.
export_type 문자열 이것은 sbom으로 설정해야 합니다.
curl --request POST --header "PRIVATE-TOKEN: <private_token>" "https://gitlab.example.com/api/v4/pipelines/1/dependency_list_exports" --data "export_type=sbom"

생성된 의존성 디렉터리 익스포트는 1시간 후에 자동으로 삭제됩니다.

예시 응답:

{
  "id": 2,
  "has_finished": false,
  "self": "http://gitlab.example.com/api/v4/dependency_list_exports/2",
  "download": "http://gitlab.example.com/api/v4/dependency_list_exports/2/download"
}

단일 의존성 디렉터리 익스포트 가져오기

단일 의존성 디렉터리 익스포트를 가져옵니다.

GET /dependency_list_exports/:id
속성 유형 필수 여부 설명
id 정수 의존성 디렉터리 익스포트의 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 정수 의존성 디렉터리 익스포트의 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"
          }
        }
      ]
    }
  ]
}