- 컨테이너 레지스트리 Protection Rules 목록
- 컨테이너 레지스트리 Protection Rule 생성
- 컨테이너 레지스트리 Protection Rule 업데이트
- 컨테이너 레지스트리 보호 규칙 삭제
컨테이너 레지스트리 Protection Rules API
이 API 엔드포인트는 프로젝트의 컨테이너 레지스트리 보호 규칙을 관리합니다. 이 기능은 실험적입니다.
컨테이너 레지스트리 Protection Rules 목록
프로젝트로부터 컨테이너 레지스트리 Protection Rules 목록을 가져옵니다.
GET /api/v4/projects/:id/registry/protection/rules
지원되는 속성:
속성 | 형식 | 필수여부 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
성공하면 200
과 컨테이너 레지스트리 Protection Rules의 목록을 반환합니다.
다음과 같은 상태 코드를 반환할 수 있습니다:
-
200 OK
: 컨테이너 레지스트리 Protection Rules의 목록입니다. -
401 Unauthorized
: 액세스 토큰이 잘못되었습니다. -
403 Forbidden
: 사용자에게 이 프로젝트의 컨테이너 레지스트리 Protection Rules 목록을 나열할 권한이 없습니다. -
404 Not Found
: 프로젝트를 찾을 수 없습니다.
예시 요청:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/rules"
예시 응답:
[
{
"id": 1,
"project_id": 7,
"repository_path_pattern": "flightjs/flight0",
"minimum_access_level_for_push": "maintainer",
"minimum_access_level_for_delete": "maintainer"
},
{
"id": 2,
"project_id": 7,
"repository_path_pattern": "flightjs/flight1",
"minimum_access_level_for_push": "maintainer",
"minimum_access_level_for_delete": "maintainer"
},
]
컨테이너 레지스트리 Protection Rule 생성
GitLab 17.2에서 소개되었습니다.
프로젝트를 위해 컨테이너 레지스트리 Protection Rule을 생성합니다.
POST /api/v4/projects/:id/registry/protection/rules
지원되는 속성:
속성 | 형식 | 필수여부 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
repository_path_pattern
| string | Yes | 보호 규칙에 의해 보호되는 컨테이너 레지스트리 경로 패턴. 예: flight/flight-* . 와일드카드 문자 * 허용됩니다.
|
minimum_access_level_for_push
| string | No | 컨테이너 이미지를 컨테이너 레지스트리에 푸시할 수 있는 최소 GitLab 액세스 수준. 예: maintainer , owner 또는 admin . minimum_access_level_for_delete 가 설정되지 않았을 때 제공해야 합니다.
|
minimum_access_level_for_delete
| string | No | 컨테이너 레지스트리에서 컨테이너 이미지를 삭제할 수 있는 최소 GitLab 액세스 수준. 예: maintainer , owner , admin . minimum_access_level_for_push 가 설정되지 않았을 때 제공해야 합니다.
|
성공하면 201
및 생성된 컨테이너 레지스트리 Protection Rule이 반환됩니다.
다음과 같은 상태 코드를 반환할 수 있습니다:
-
201 Created
: 컨테이너 레지스트리 Protection Rule이 성공적으로 생성되었습니다. -
400 Bad Request
: 컨테이너 레지스트리 Protection Rule이 잘못되었습니다. -
401 Unauthorized
: 액세스 토큰이 잘못되었습니다. -
403 Forbidden
: 사용자에게 컨테이너 레지스트리 Protection Rule을 생성할 권한이 없습니다. -
404 Not Found
: 프로젝트를 찾을 수 없습니다. -
422 Unprocessable Entity
: 컨테이너 레지스트리 Protection Rule이repository_path_pattern
이 이미 사용 중이기 때문에 생성되지 않을 수 있습니다.
예시 요청:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/rules" \
--data '{
"repository_path_pattern": "flightjs/flight-needs-to-be-a-unique-path",
"minimum_access_level_for_push": "maintainer",
"minimum_access_level_for_delete": "maintainer"
}'
컨테이너 레지스트리 Protection Rule 업데이트
GitLab 17.2에서 소개되었습니다.
프로젝트를 위해 컨테이너 레지스트리 Protection Rule을 업데이트합니다.
PATCH /api/v4/projects/:id/registry/protection/rules/:protection_rule_id
지원되는 속성:
속성 | 형식 | 필수여부 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
protection_rule_id
| integer | Yes | 업데이트할 보호 규칙의 ID. |
repository_path_pattern
| string | No | 보호되는 컨테이너 레지스트리 경로 패턴. 예: flight/flight-* . 와일드카드 문자 * 허용됩니다.
|
minimum_access_level_for_push
| string | No | 컨테이너 이미지를 컨테이너 레지스트리에 푸시할 수 있는 최소 GitLab 액세스 수준. 예: maintainer , owner 또는 admin . minimum_access_level_for_delete 가 설정되지 않았을 때 제공해야 합니다. 값 해제하려면 빈 문자열 "" 을 사용하세요.
|
minimum_access_level_for_delete
| string | No | 컨테이너 레지스트리에서 컨테이너 이미지를 삭제할 수 있는 최소 GitLab 액세스 수준. 예: maintainer , owner , admin . minimum_access_level_for_push 가 설정되지 않았을 때 제공해야 합니다. 값을 해제하려면 빈 문자열 "" 을 사용하세요.
|
성공하면 200
과 업데이트된 보호 규칙이 반환됩니다.
다음과 같은 상태 코드를 반환할 수 있습니다:
-
200 OK
: 보호 규칙이 성공적으로 패치되었습니다. -
400 Bad Request
: 패치가 잘못됐습니다. -
401 Unauthorized
: 액세스 토큰이 잘못되었습니다. -
403 Forbidden
: 사용자에게 패치할 권한이 없습니다. -
404 Not Found
: 프로젝트를 찾을 수 없습니다. -
422 Unprocessable Entity
: 보호 규칙이repository_path_pattern
이 이미 사용 중이기 때문에 패치되지 않을 수 있습니다.
예시 요청:
curl --request PATCH \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/rules/32" \
--data '{
"repository_path_pattern": "flight/flight-*"
}'
컨테이너 레지스트리 보호 규칙 삭제
- GitLab 17.4에서 도입되었습니다.
프로젝트에서 컨테이너 레지스트리 보호 규칙을 삭제합니다.
DELETE /api/v4/projects/:id/registry/protection/rules/:protection_rule_id
지원되는 속성:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로. |
protection_rule_id
| 정수 | 예 | 삭제할 컨테이너 레지스트리 보호 규칙의 ID. |
성공적인 경우 204 No Content
를 반환합니다.
다음과 같은 상태 코드를 반환할 수 있습니다:
-
204 No Content
: 보호 규칙이 성공적으로 삭제되었습니다. -
400 Bad Request
:id
또는protection_rule_id
가 누락되었거나 잘못되었습니다. -
401 Unauthorized
: 액세스 토큰이 잘못되었습니다. -
403 Forbidden
: 사용자가 보호 규칙을 삭제할 권한이 없습니다. -
404 Not Found
: 프로젝트 또는 보호 규칙을 찾을 수 없습니다.
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/7/registry/protection/rules/1"