프로젝트 레벨 보안 파일 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 프로젝트의 보안 파일을 관리합니다. 지정된 프로젝트의 모든 보안 파일을 나열합니다. 지정된 프로젝트의 보안 파일 세부 정보를 조회합니다. 지정된 프로젝트에 보안 파일을 만듭니다. 프로젝트의 지정된 보안 파일 내용을 다운로드합니다.
히스토리
- GitLab 15.7에서 일반적으로 사용 가능해짐. 기능 플래그
ci_secure_files제거됨.
이 API를 사용하여 프로젝트의 보안 파일을 관리합니다.
프로젝트의 모든 보안 파일 나열#
지정된 프로젝트의 모든 보안 파일을 나열합니다.
GET /projects/:project_id/secure_files
지원되는 속성:
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
project_id |
정수 또는 문자열 | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "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 |
정수 | Yes | 보안 파일의 ID. |
project_id |
정수 또는 문자열 | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "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 |
파일 | Yes | 업로드 중인 파일(5MB 제한). |
name |
문자열 | Yes | 업로드 중인 파일의 이름. 파일명은 프로젝트에서 고유해야 합니다. |
project_id |
정수 또는 문자열 | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 요청:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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 |
정수 | Yes | 보안 파일의 ID. |
project_id |
정수 또는 문자열 | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 요청:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/secure_files/1/download" \
--output myfile.jks
보안 파일 삭제#
프로젝트에서 지정된 보안 파일을 삭제합니다.
DELETE /projects/:project_id/secure_files/:id
지원되는 속성:
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 | Yes | 보안 파일의 ID. |
project_id |
정수 또는 문자열 | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
예시 요청:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/secure_files/1"
