InfoGrab Docs

컨테이너 레지스트리 보호 태그 규칙 API

요약

이 API를 사용하여 보호된 컨테이너 태그를 관리합니다. 프로젝트의 컨테이너 레지스트리 보호 태그 규칙 목록을 가져옵니다. 성공하면 200 OK와 다음 응답 속성을 반환합니다: 다음 상태 코드를 반환할 수 있습니다: 프로젝트의 컨테이너 레지스트리 보호 태그 규칙을 생성합니다.

히스토리

이 API를 사용하여 보호된 컨테이너 태그를 관리합니다.

컨테이너 레지스트리 보호 태그 규칙 목록 조회#

프로젝트의 컨테이너 레지스트리 보호 태그 규칙 목록을 가져옵니다.

GET /api/v4/projects/:id/registry/protection/tag/rules

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
id integer 보호된 컨테이너 태그 규칙의 ID.
minimum_access_level_for_delete string 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_push string 태그에 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
project_id integer 프로젝트의 ID.
tag_name_pattern string 태그 이름 패턴. 예: v*-release 또는 latest.

다음 상태 코드를 반환할 수 있습니다:

  • 200 OK: 보호 규칙 목록.
  • 401 Unauthorized: 액세스 토큰이 유효하지 않습니다.
  • 403 Forbidden: 이 프로젝트의 보호 규칙을 나열할 권한이 없습니다.
  • 404 Not Found: 프로젝트를 찾을 수 없습니다.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/7/registry/protection/tag/rules"

응답 예시:

[
  {
    "id": 1,
    "project_id": 7,
    "tag_name_pattern": "v*-release",
    "minimum_access_level_for_push": "maintainer",
    "minimum_access_level_for_delete": "maintainer"
  },
  {
    "id": 2,
    "project_id": 7,
    "tag_name_pattern": "latest",
    "minimum_access_level_for_push": "owner",
    "minimum_access_level_for_delete": "owner"
  }
]

컨테이너 레지스트리 보호 태그 규칙 생성#

히스토리

프로젝트의 컨테이너 레지스트리 보호 태그 규칙을 생성합니다.

POST /api/v4/projects/:id/registry/protection/tag/rules

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name_pattern string Yes 보호 규칙에 의해 보호되는 컨테이너 태그 이름 패턴. 예: v*-release. 와일드카드 문자 * 허용.
minimum_access_level_for_push string Yes 컨테이너 태그를 푸시하는 데 필요한 최소 GitLab 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_delete string Yes 컨테이너 태그를 삭제하는 데 필요한 최소 GitLab 액세스 수준. 가능한 값: maintainer, owner, admin.

성공하면 201 Created와 다음 응답 속성을 반환합니다:

속성 유형 설명
id integer 컨테이너 태그 규칙의 고유 식별자.
project_id integer 이 컨테이너 태그 규칙이 속한 프로젝트의 ID.
tag_name_pattern string 컨테이너 태그 이름을 매칭하는 데 사용되는 glob 패턴. 예: v*-release.
minimum_access_level_for_push string 이 패턴과 일치하는 컨테이너 태그를 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_delete string 이 패턴과 일치하는 컨테이너 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.

다음 상태 코드를 반환할 수 있습니다:

  • 201 Created: 보호 규칙이 성공적으로 생성되었습니다.
  • 400 Bad Request: 보호 규칙이 유효하지 않습니다.
  • 401 Unauthorized: 액세스 토큰이 유효하지 않습니다.
  • 403 Forbidden: 보호 규칙을 생성할 권한이 없습니다.
  • 404 Not Found: 프로젝트를 찾을 수 없습니다.
  • 422 Unprocessable Entity: 보호 규칙을 생성할 수 없습니다. 예를 들어 tag_name_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/tag/rules" \
  --data '{
        "tag_name_pattern": "v*-release",
        "minimum_access_level_for_push": "maintainer",
        "minimum_access_level_for_delete": "maintainer"
    }'

응답 예시:

{
  "id": 1,
  "project_id": 7,
  "tag_name_pattern": "v*-release",
  "minimum_access_level_for_push": "maintainer",
  "minimum_access_level_for_delete": "maintainer"
}

컨테이너 레지스트리 보호 태그 규칙 업데이트#

히스토리

프로젝트의 컨테이너 레지스트리 보호 태그 규칙을 업데이트합니다.

PATCH /api/v4/projects/:id/registry/protection/tag/rules/:protection_rule_id

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
protection_rule_id integer Yes 업데이트할 보호 태그 규칙의 ID.
minimum_access_level_for_delete string No 컨테이너 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin. 값을 해제하려면 빈 문자열("")을 사용하세요.
minimum_access_level_for_push string No 컨테이너 태그를 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin. 값을 해제하려면 빈 문자열("")을 사용하세요.
tag_name_pattern string No 보호 규칙에 의해 보호되는 컨테이너 태그 이름 패턴. 예: v*-release. 와일드카드 문자 * 허용.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
id integer 컨테이너 태그 규칙의 고유 식별자.
project_id integer 이 컨테이너 태그 규칙이 속한 프로젝트의 ID.
tag_name_pattern string 컨테이너 태그 이름을 매칭하는 데 사용되는 glob 패턴. 예: v*-release.
minimum_access_level_for_push string 이 패턴과 일치하는 컨테이너 태그를 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_delete string 이 패턴과 일치하는 컨테이너 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.

다음 상태 코드를 반환할 수 있습니다:

  • 200 OK: 보호 규칙이 성공적으로 업데이트되었습니다.
  • 400 Bad Request: 보호 규칙이 유효하지 않습니다.
  • 401 Unauthorized: 액세스 토큰이 유효하지 않습니다.
  • 403 Forbidden: 보호 규칙을 업데이트할 권한이 없습니다.
  • 404 Not Found: 프로젝트를 찾을 수 없습니다.
  • 422 Unprocessable Entity: 보호 규칙을 업데이트할 수 없습니다. 예를 들어 tag_name_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/tag/rules/1" \
  --data '{
       "tag_name_pattern": "v*-stable"
    }'

응답 예시:

{
  "id": 1,
  "project_id": 7,
  "tag_name_pattern": "v*-stable",
  "minimum_access_level_for_push": "maintainer",
  "minimum_access_level_for_delete": "maintainer"
}

컨테이너 레지스트리 보호 태그 규칙 삭제#

히스토리

프로젝트에서 컨테이너 레지스트리 보호 태그 규칙을 삭제합니다.

DELETE /api/v4/projects/:id/registry/protection/tag/rules/:protection_rule_id

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
protection_rule_id integer Yes 삭제할 컨테이너 레지스트리 보호 태그 규칙의 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/tag/rules/1"

컨테이너 레지스트리 보호 태그 규칙 API

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed
원문 보기
요약

이 API를 사용하여 보호된 컨테이너 태그를 관리합니다. 프로젝트의 컨테이너 레지스트리 보호 태그 규칙 목록을 가져옵니다. 성공하면 200 OK와 다음 응답 속성을 반환합니다: 다음 상태 코드를 반환할 수 있습니다: 프로젝트의 컨테이너 레지스트리 보호 태그 규칙을 생성합니다.

히스토리

이 API를 사용하여 보호된 컨테이너 태그를 관리합니다.

컨테이너 레지스트리 보호 태그 규칙 목록 조회#

프로젝트의 컨테이너 레지스트리 보호 태그 규칙 목록을 가져옵니다.

GET /api/v4/projects/:id/registry/protection/tag/rules

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
id integer 보호된 컨테이너 태그 규칙의 ID.
minimum_access_level_for_delete string 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_push string 태그에 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
project_id integer 프로젝트의 ID.
tag_name_pattern string 태그 이름 패턴. 예: v*-release 또는 latest.

다음 상태 코드를 반환할 수 있습니다:

  • 200 OK: 보호 규칙 목록.
  • 401 Unauthorized: 액세스 토큰이 유효하지 않습니다.
  • 403 Forbidden: 이 프로젝트의 보호 규칙을 나열할 권한이 없습니다.
  • 404 Not Found: 프로젝트를 찾을 수 없습니다.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/7/registry/protection/tag/rules"

응답 예시:

[
  {
    "id": 1,
    "project_id": 7,
    "tag_name_pattern": "v*-release",
    "minimum_access_level_for_push": "maintainer",
    "minimum_access_level_for_delete": "maintainer"
  },
  {
    "id": 2,
    "project_id": 7,
    "tag_name_pattern": "latest",
    "minimum_access_level_for_push": "owner",
    "minimum_access_level_for_delete": "owner"
  }
]

컨테이너 레지스트리 보호 태그 규칙 생성#

히스토리

프로젝트의 컨테이너 레지스트리 보호 태그 규칙을 생성합니다.

POST /api/v4/projects/:id/registry/protection/tag/rules

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name_pattern string Yes 보호 규칙에 의해 보호되는 컨테이너 태그 이름 패턴. 예: v*-release. 와일드카드 문자 * 허용.
minimum_access_level_for_push string Yes 컨테이너 태그를 푸시하는 데 필요한 최소 GitLab 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_delete string Yes 컨테이너 태그를 삭제하는 데 필요한 최소 GitLab 액세스 수준. 가능한 값: maintainer, owner, admin.

성공하면 201 Created와 다음 응답 속성을 반환합니다:

속성 유형 설명
id integer 컨테이너 태그 규칙의 고유 식별자.
project_id integer 이 컨테이너 태그 규칙이 속한 프로젝트의 ID.
tag_name_pattern string 컨테이너 태그 이름을 매칭하는 데 사용되는 glob 패턴. 예: v*-release.
minimum_access_level_for_push string 이 패턴과 일치하는 컨테이너 태그를 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_delete string 이 패턴과 일치하는 컨테이너 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.

다음 상태 코드를 반환할 수 있습니다:

  • 201 Created: 보호 규칙이 성공적으로 생성되었습니다.
  • 400 Bad Request: 보호 규칙이 유효하지 않습니다.
  • 401 Unauthorized: 액세스 토큰이 유효하지 않습니다.
  • 403 Forbidden: 보호 규칙을 생성할 권한이 없습니다.
  • 404 Not Found: 프로젝트를 찾을 수 없습니다.
  • 422 Unprocessable Entity: 보호 규칙을 생성할 수 없습니다. 예를 들어 tag_name_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/tag/rules" \
  --data '{
        "tag_name_pattern": "v*-release",
        "minimum_access_level_for_push": "maintainer",
        "minimum_access_level_for_delete": "maintainer"
    }'

응답 예시:

{
  "id": 1,
  "project_id": 7,
  "tag_name_pattern": "v*-release",
  "minimum_access_level_for_push": "maintainer",
  "minimum_access_level_for_delete": "maintainer"
}

컨테이너 레지스트리 보호 태그 규칙 업데이트#

히스토리

프로젝트의 컨테이너 레지스트리 보호 태그 규칙을 업데이트합니다.

PATCH /api/v4/projects/:id/registry/protection/tag/rules/:protection_rule_id

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
protection_rule_id integer Yes 업데이트할 보호 태그 규칙의 ID.
minimum_access_level_for_delete string No 컨테이너 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin. 값을 해제하려면 빈 문자열("")을 사용하세요.
minimum_access_level_for_push string No 컨테이너 태그를 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin. 값을 해제하려면 빈 문자열("")을 사용하세요.
tag_name_pattern string No 보호 규칙에 의해 보호되는 컨테이너 태그 이름 패턴. 예: v*-release. 와일드카드 문자 * 허용.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
id integer 컨테이너 태그 규칙의 고유 식별자.
project_id integer 이 컨테이너 태그 규칙이 속한 프로젝트의 ID.
tag_name_pattern string 컨테이너 태그 이름을 매칭하는 데 사용되는 glob 패턴. 예: v*-release.
minimum_access_level_for_push string 이 패턴과 일치하는 컨테이너 태그를 푸시하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.
minimum_access_level_for_delete string 이 패턴과 일치하는 컨테이너 태그를 삭제하는 데 필요한 최소 액세스 수준. 가능한 값: maintainer, owner, admin.

다음 상태 코드를 반환할 수 있습니다:

  • 200 OK: 보호 규칙이 성공적으로 업데이트되었습니다.
  • 400 Bad Request: 보호 규칙이 유효하지 않습니다.
  • 401 Unauthorized: 액세스 토큰이 유효하지 않습니다.
  • 403 Forbidden: 보호 규칙을 업데이트할 권한이 없습니다.
  • 404 Not Found: 프로젝트를 찾을 수 없습니다.
  • 422 Unprocessable Entity: 보호 규칙을 업데이트할 수 없습니다. 예를 들어 tag_name_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/tag/rules/1" \
  --data '{
       "tag_name_pattern": "v*-stable"
    }'

응답 예시:

{
  "id": 1,
  "project_id": 7,
  "tag_name_pattern": "v*-stable",
  "minimum_access_level_for_push": "maintainer",
  "minimum_access_level_for_delete": "maintainer"
}

컨테이너 레지스트리 보호 태그 규칙 삭제#

히스토리

프로젝트에서 컨테이너 레지스트리 보호 태그 규칙을 삭제합니다.

DELETE /api/v4/projects/:id/registry/protection/tag/rules/:protection_rule_id

지원되는 속성:

속성 유형 필수 설명
id integer or string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
protection_rule_id integer Yes 삭제할 컨테이너 레지스트리 보호 태그 규칙의 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/tag/rules/1"