프로젝트 수준 보안 파일 API
Offering: GitLab.com, Self-managed, GitLab Dedicated
- 일반 공개 - GitLab 15.7에 포함되었습니다. 기능 플래그
ci_secure_files
가 제거되었습니다.
이 기능은 GitLab Incubation Engineering에서 개발한 Mobile DevOps의 일부입니다.
이 기능은 아직 개발 중이지만, 다음을 할 수 있습니다:
CI/CD 파이프라인에서 사용할 보안 파일로 최대 100개의 파일을 안전하게 저장할 수 있습니다. 이 파일들은 프로젝트의 저장소 외부에 안전하게 저장되며 버전 관리되지 않습니다. 이러한 파일에 민감한 정보를 저장하는 것은 안전합니다. 보안 파일은 일반 텍스트와 이진 파일 유형을 모두 지원하지만 최대 5MB 이하여야 합니다.
프로젝트 보안 파일 목록
프로젝트의 보안 파일 목록을 가져옵니다.
GET /projects/:project_id/secure_files
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
project_id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예제 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/secure_files"
예제 응답:
[
{
"id": 1,
"name": "myfile.jks",
"checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac",
"checksum_algorithm": "sha256",
"created_at": "2022-02-22T22:22:22.222Z",
"expires_at": null,
"metadata": null
},
{
"id": 2,
"name": "myfile.cer",
"checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aa2",
"checksum_algorithm": "sha256",
"created_at": "2022-02-22T22:22:22.222Z",
"expires_at": "2023-09-21T14:55:59.000Z",
"metadata": {
"id":"75949910542696343243264405377658443914",
"issuer": {
"C":"US",
"O":"Apple Inc.",
"CN":"Apple Worldwide Developer Relations Certification Authority",
"OU":"G3"
},
"subject": {
"C":"US",
"O":"Organization Name",
"CN":"Apple Distribution: Organization Name (ABC123XYZ)",
"OU":"ABC123XYZ",
"UID":"ABC123XYZ"
},
"expires_at":"2023-09-21T14:55:59.000Z"
}
}
]
보안 파일 세부정보 보기
프로젝트에서 특정 보안 파일의 세부정보를 가져옵니다.
GET /projects/:project_id/secure_files/:id
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 보안 파일의 ID입니다. |
project_id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로입니다. |
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/secure_files/1"
예시 응답:
{
"id": 1,
"name": "myfile.jks",
"checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac",
"checksum_algorithm": "sha256",
"created_at": "2022-02-22T22:22:22.222Z",
"expires_at": null,
"metadata": null
}
보안 파일 만들기
새로운 보안 파일을 생성합니다.
POST /projects/:project_id/secure_files
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
file |
파일 | 예 | 업로드되는 파일(5 MB 제한)입니다. |
name |
문자열 | 예 | 업로드되는 파일의 이름입니다. 파일 이름은 프로젝트 내에서 고유해야 합니다. |
project_id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로입니다. |
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/projects/1/secure_files" --form "name=myfile.jks" --form "file=@/path/to/file/myfile.jks"
예시 응답:
{
"id": 1,
"name": "myfile.jks",
"checksum": "16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac",
"checksum_algorithm": "sha256",
"created_at": "2022-02-22T22:22:22.222Z",
"expires_at": null,
"metadata": null
}
보안 파일 다운로드
프로젝트의 보안 파일 내용을 다운로드합니다.
GET /projects/:project_id/secure_files/:id/download
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 보안 파일의 ID입니다. |
project_id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩 경로입니다. |
예시 요청:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/secure_files/1/download --output myfile.jks
보안 파일 제거
프로젝트의 보안 파일을 제거합니다.
DELETE /projects/:project_id/secure_files/:id
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수 | 예 | 보안 파일의 ID입니다. |
project_id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩 경로입니다. |
예제 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/secure_files/1"