InfoGrab DocsInfoGrab Docs

의존성 목록 내보내기 API

요약

이 API를 사용해 의존성 목록을 내보냅니다. 파이프라인에서 탐지된 모든 프로젝트 의존성에 대해 CycloneDX JSON 내보내기를 생성합니다. 인증된 사용자에게 read_dependency 권한이 없으면 이 요청은 403 Forbidden 상태 코드를 반환합니다.

이 API를 사용해 의존성 목록을 내보냅니다. 이 API의 모든 호출에는 인증이 필요합니다.

의존성 목록 내보내기 생성#

파이프라인에서 탐지된 모든 프로젝트 의존성에 대해 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 yes 인증된 사용자가 접근할 수 있는 프로젝트, 그룹 또는 파이프라인의 ID 입니다.
export_type string yes 내보내기 형식입니다. 허용되는 값의 목록은 내보내기 형식을 참고합니다.
send_email boolean no true로 설정하면 내보내기가 완료될 때 내보내기를 요청한 사용자에게 이메일 알림을 보냅니다.
curl --request POST \
  --header "PRIVATE-TOKEN: <private_token>" \
  --url "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"
}

내보내기 형식#

내보내기는 여러 파일 형식으로 요청할 수 있습니다. 일부 형식은 특정 객체에서만 사용할 수 있습니다.

Export Type Description Available for
dependency_list 의존성을 키-값 쌍으로 나열하는 표준 JSON 객체입니다. Projects
sbom CycloneDX 1.4 자재 명세서(BOM)입니다. Pipelines
cyclonedx_1_6_json CycloneDX 1.6 자재 명세서(BOM)입니다. Projects
json_array 컴포넌트 객체를 담은 평면 JSON 배열입니다. Groups
csv 쉼표로 구분된 값(CSV) 문서입니다. Projects, Groups

단일 의존성 목록 내보내기 조회#

의존성 목록 내보내기를 조회합니다.

GET /dependency_list_exports/:id
속성 유형 필수 설명
id integer yes 의존성 목록 내보내기의 ID 입니다.
curl --request GET \
  --header "PRIVATE-TOKEN: <private_token>" \
  --url "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 yes 의존성 목록 내보내기의 ID 입니다.
curl --request GET \
  --header "PRIVATE-TOKEN: <private_token>" \
  --url "https://gitlab.example.com/api/v4/dependency_list_exports/2/download"

의존성 목록 내보내기가 아직 완료되지 않았거나 찾을 수 없으면 응답은 404 Not Found 입니다.

CycloneDX 내보내기에서 SPDX 라이선스 표현식(예: MIT AND Zlib)을 가진 컴포넌트는 licenses[].license.name에 전체 표현식이 들어가며, 해당 항목에는 id 필드가 없습니다.

응답 예시:

{
  "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"
          }
        }
      ]
    }
  ]
}

의존성 목록 내보내기 API

GitLab v19.5
Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

이 API를 사용해 의존성 목록을 내보냅니다. 파이프라인에서 탐지된 모든 프로젝트 의존성에 대해 CycloneDX JSON 내보내기를 생성합니다. 인증된 사용자에게 read_dependency 권한이 없으면 이 요청은 403 Forbidden 상태 코드를 반환합니다.

이 API를 사용해 의존성 목록을 내보냅니다. 이 API의 모든 호출에는 인증이 필요합니다.

의존성 목록 내보내기 생성#

파이프라인에서 탐지된 모든 프로젝트 의존성에 대해 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 yes 인증된 사용자가 접근할 수 있는 프로젝트, 그룹 또는 파이프라인의 ID 입니다.
export_type string yes 내보내기 형식입니다. 허용되는 값의 목록은 내보내기 형식을 참고합니다.
send_email boolean no true로 설정하면 내보내기가 완료될 때 내보내기를 요청한 사용자에게 이메일 알림을 보냅니다.
curl --request POST \
  --header "PRIVATE-TOKEN: <private_token>" \
  --url "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"
}

내보내기 형식#

내보내기는 여러 파일 형식으로 요청할 수 있습니다. 일부 형식은 특정 객체에서만 사용할 수 있습니다.

Export Type Description Available for
dependency_list 의존성을 키-값 쌍으로 나열하는 표준 JSON 객체입니다. Projects
sbom CycloneDX 1.4 자재 명세서(BOM)입니다. Pipelines
cyclonedx_1_6_json CycloneDX 1.6 자재 명세서(BOM)입니다. Projects
json_array 컴포넌트 객체를 담은 평면 JSON 배열입니다. Groups
csv 쉼표로 구분된 값(CSV) 문서입니다. Projects, Groups

단일 의존성 목록 내보내기 조회#

의존성 목록 내보내기를 조회합니다.

GET /dependency_list_exports/:id
속성 유형 필수 설명
id integer yes 의존성 목록 내보내기의 ID 입니다.
curl --request GET \
  --header "PRIVATE-TOKEN: <private_token>" \
  --url "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 yes 의존성 목록 내보내기의 ID 입니다.
curl --request GET \
  --header "PRIVATE-TOKEN: <private_token>" \
  --url "https://gitlab.example.com/api/v4/dependency_list_exports/2/download"

의존성 목록 내보내기가 아직 완료되지 않았거나 찾을 수 없으면 응답은 404 Not Found 입니다.

CycloneDX 내보내기에서 SPDX 라이선스 표현식(예: MIT AND Zlib)을 가진 컴포넌트는 licenses[].license.name에 전체 표현식이 들어가며, 해당 항목에는 id 필드가 없습니다.

응답 예시:

{
  "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"
          }
        }
      ]
    }
  ]
}