의존성 디렉터리 익스포트 API
이 엔드포인트에 대한 모든 호출에는 인증이 필요합니다.
파이프라인 수준 의존성 디렉터리 익스포트 생성
- GitLab 16.4에서 도입되었으며 기본적으로 활성화된
merge_sbom_api
라는 플래그로 도입되었습니다.- GitLab 16.7에서 일반 사용 가능(GA)합니다.
merge_sbom_api
피처 플래그가 제거되었습니다.
파이프라인에서 감지된 프로젝트 의존성에 대한 새로운 CycloneDX JSON 익스포트를 생성합니다.
인증된 사용자가 read_dependency 권한을 갖지 않은 경우 이 요청은 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
입니다.
예시 응답:
```json { “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” } } ] } ] }