디펜던시 리스트 내보내기 API

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

이 엔드포인트에 대한 모든 호출은 인증을 요구합니다.

파이프라인 수준의 디펜던시 리스트 내보내기 생성

  • 도입됨 GitLab 16.4에서 merge_sbom_api라는 플래그와 함께. 기본적으로 활성화됨.
  • 일반적으로 사용 가능 GitLab 16.7에서. 기능 플래그 merge_sbom_api가 제거됨.

파이프라인에서 발견된 모든 프로젝트 디펜던시에 대한 새로운 CycloneDX JSON 내보내기를 생성합니다.

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

SBOM 내보내기는 내보내기 작성자만 접근할 수 있습니다.

POST /pipelines/:id/dependency_list_exports  
속성 타입 필수 설명
id integer 인증된 사용자가 접근할 수 있는 파이프라인의 ID입니다.
export_type string 이것은 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 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"  
          }  
        }  
      ]  
    }  
  ]  
}