InfoGrab Docs

보호된 태그 API

요약

이 API를 사용하여 보호된 태그를 관리합니다. 프로젝트의 보호된 태그 목록을 가져옵니다. 성공 시 200 OK와 다음 응답 속성을 반환합니다: 단일 보호된 태그 또는 와일드카드 보호된 태그를 가져옵니다. 단일 저장소 태그 또는 와일드카드 보호된 태그를 사용하여 여러 프로젝트 저장소 태그를 보호합니다.

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

유효한 액세스 레벨#

다음 액세스 레벨이 인식됩니다:

  • 0: 액세스 없음
  • 30: Developer 역할
  • 40: Maintainer 역할

보호된 태그 목록#

히스토리
  • 배포 키 정보가 GitLab 16.0에서 도입되었습니다.

프로젝트의 보호된 태그 목록을 가져옵니다. 이 함수는 보호된 태그 목록을 제한하기 위한 페이지네이션 매개변수 pageper_page를 사용합니다.

GET /projects/:id/protected_tags

지원되는 속성:

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

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

속성 유형 설명
create_access_levels array 생성 액세스 레벨 구성 배열.
create_access_levels[].access_level integer 태그 생성을 위한 액세스 레벨.
create_access_levels[].access_level_description string 액세스 레벨의 사람이 읽을 수 있는 설명.
create_access_levels[].deploy_key_id integer 생성 액세스 권한이 있는 배포 키의 ID.
create_access_levels[].group_id integer 생성 액세스 권한이 있는 그룹의 ID. Premium 및 Ultimate 전용.
create_access_levels[].id integer 생성 액세스 레벨 구성의 ID.
create_access_levels[].user_id integer 생성 액세스 권한이 있는 사용자의 ID. Premium 및 Ultimate 전용.
name string 보호된 태그의 이름.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags"

응답 예시:

[
  {
    "name": "release-1-0",
    "create_access_levels": [
      {
        "id":1,
        "access_level": 40,
        "access_level_description": "Maintainers"
      },
      {
        "id": 2,
        "access_level": 40,
        "access_level_description": "Deploy key",
        "deploy_key_id": 1
      }
    ]
  }
]

보호된 태그 또는 와일드카드 보호된 태그 가져오기#

단일 보호된 태그 또는 와일드카드 보호된 태그를 가져옵니다.

GET /projects/:id/protected_tags/:name

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
name string 태그 또는 와일드카드의 이름.

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

속성 유형 설명
create_access_levels array 생성 액세스 레벨 구성 배열.
create_access_levels[].access_level integer 태그 생성을 위한 액세스 레벨.
create_access_levels[].access_level_description string 액세스 레벨의 사람이 읽을 수 있는 설명.
create_access_levels[].deploy_key_id integer 생성 액세스 권한이 있는 배포 키의 ID.
create_access_levels[].group_id integer 생성 액세스 권한이 있는 그룹의 ID. Premium 및 Ultimate 전용.
create_access_levels[].id integer 생성 액세스 레벨 구성의 ID.
create_access_levels[].user_id integer 생성 액세스 권한이 있는 사용자의 ID. Premium 및 Ultimate 전용.
name string 보호된 태그의 이름.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags/release-1-0"

응답 예시:

{
  "name": "release-1-0",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": 40,
      "access_level_description": "Maintainers"
    }
  ]
}

저장소 태그 보호#

히스토리

단일 저장소 태그 또는 와일드카드 보호된 태그를 사용하여 여러 프로젝트 저장소 태그를 보호합니다.

POST /projects/:id/protected_tags

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
name string 태그 또는 와일드카드의 이름.
allowed_to_create array 아니요 태그를 생성할 수 있는 액세스 레벨 배열. 각 항목은 {user_id: integer}, {group_id: integer}, {deploy_key_id: integer}, 또는 {access_level: integer} 형식의 해시로 설명됩니다. user_id, group_id, access_level은 Premium 및 Ultimate 전용.
create_access_level integer 아니요 생성을 허용하는 액세스 레벨. 기본값은 40(Maintainer 역할).

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

속성 유형 설명
create_access_levels array 생성 액세스 레벨 구성 배열.
create_access_levels[].access_level integer 태그 생성을 위한 액세스 레벨.
create_access_levels[].access_level_description string 액세스 레벨의 사람이 읽을 수 있는 설명.
create_access_levels[].deploy_key_id integer 생성 액세스 권한이 있는 배포 키의 ID.
create_access_levels[].group_id integer 생성 액세스 권한이 있는 그룹의 ID. Premium 및 Ultimate 전용.
create_access_levels[].id integer 생성 액세스 레벨 구성의 ID.
create_access_levels[].user_id integer 생성 액세스 권한이 있는 사용자의 ID. Premium 및 Ultimate 전용.
name string 보호된 태그의 이름.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags" \
  --data '{
   "allowed_to_create" : [
      {
         "user_id" : 1
      },
      {
         "access_level" : 30
      }
   ],
   "create_access_level" : 30,
   "name" : "*-stable"
}'

응답 예시:

{
  "name": "*-stable",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": 30,
      "access_level_description": "Developers + Maintainers"
    }
  ]
}

사용자 및 그룹 액세스가 있는 예시#

allowed_to_create 배열의 요소는 {user_id: integer}, {group_id: integer}, {deploy_key_id: integer}, 또는 {access_level: integer} 형식이어야 합니다. 각 사용자는 프로젝트에 액세스할 수 있어야 하며 각 그룹은 이 프로젝트를 공유해야 합니다. 이러한 액세스 레벨은 보호된 태그 액세스에 대한 보다 세밀한 제어를 허용합니다. 자세한 내용은 보호된 태그에 그룹 추가를 참조하세요.

다음 요청 예시는 특정 사용자 및 그룹에 생성 액세스를 허용하는 보호된 태그를 만드는 방법을 보여줍니다:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags" \
  --data "name=*-stable" \
  --data "allowed_to_create[][user_id]=10" \
  --data "allowed_to_create[][group_id]=20"

다음 응답 예시에 포함된 내용:

  • "*-stable" 이름의 보호된 태그.
  • ID 10을 가진 사용자를 위한 ID 1create_access_levels.
  • ID 20을 가진 그룹을 위한 ID 2create_access_levels.
{
  "name": "*-stable",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": null,
      "user_id": 10,
      "group_id": null,
      "access_level_description": "Administrator"
    },
    {
      "id": 2,
      "access_level": null,
      "user_id": null,
      "group_id": 20,
      "access_level_description": "Example Create Group"
    }
  ]
}

저장소 태그 보호 해제#

주어진 보호된 태그 또는 와일드카드 보호된 태그의 보호를 해제합니다.

DELETE /projects/:id/protected_tags/:name

지원되는 속성:

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

성공 시 204 No Content를 반환합니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable"

관련 항목#

보호된 태그 API

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

이 API를 사용하여 보호된 태그를 관리합니다. 프로젝트의 보호된 태그 목록을 가져옵니다. 성공 시 200 OK와 다음 응답 속성을 반환합니다: 단일 보호된 태그 또는 와일드카드 보호된 태그를 가져옵니다. 단일 저장소 태그 또는 와일드카드 보호된 태그를 사용하여 여러 프로젝트 저장소 태그를 보호합니다.

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

유효한 액세스 레벨#

다음 액세스 레벨이 인식됩니다:

  • 0: 액세스 없음
  • 30: Developer 역할
  • 40: Maintainer 역할

보호된 태그 목록#

히스토리
  • 배포 키 정보가 GitLab 16.0에서 도입되었습니다.

프로젝트의 보호된 태그 목록을 가져옵니다. 이 함수는 보호된 태그 목록을 제한하기 위한 페이지네이션 매개변수 pageper_page를 사용합니다.

GET /projects/:id/protected_tags

지원되는 속성:

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

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

속성 유형 설명
create_access_levels array 생성 액세스 레벨 구성 배열.
create_access_levels[].access_level integer 태그 생성을 위한 액세스 레벨.
create_access_levels[].access_level_description string 액세스 레벨의 사람이 읽을 수 있는 설명.
create_access_levels[].deploy_key_id integer 생성 액세스 권한이 있는 배포 키의 ID.
create_access_levels[].group_id integer 생성 액세스 권한이 있는 그룹의 ID. Premium 및 Ultimate 전용.
create_access_levels[].id integer 생성 액세스 레벨 구성의 ID.
create_access_levels[].user_id integer 생성 액세스 권한이 있는 사용자의 ID. Premium 및 Ultimate 전용.
name string 보호된 태그의 이름.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags"

응답 예시:

[
  {
    "name": "release-1-0",
    "create_access_levels": [
      {
        "id":1,
        "access_level": 40,
        "access_level_description": "Maintainers"
      },
      {
        "id": 2,
        "access_level": 40,
        "access_level_description": "Deploy key",
        "deploy_key_id": 1
      }
    ]
  }
]

보호된 태그 또는 와일드카드 보호된 태그 가져오기#

단일 보호된 태그 또는 와일드카드 보호된 태그를 가져옵니다.

GET /projects/:id/protected_tags/:name

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
name string 태그 또는 와일드카드의 이름.

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

속성 유형 설명
create_access_levels array 생성 액세스 레벨 구성 배열.
create_access_levels[].access_level integer 태그 생성을 위한 액세스 레벨.
create_access_levels[].access_level_description string 액세스 레벨의 사람이 읽을 수 있는 설명.
create_access_levels[].deploy_key_id integer 생성 액세스 권한이 있는 배포 키의 ID.
create_access_levels[].group_id integer 생성 액세스 권한이 있는 그룹의 ID. Premium 및 Ultimate 전용.
create_access_levels[].id integer 생성 액세스 레벨 구성의 ID.
create_access_levels[].user_id integer 생성 액세스 권한이 있는 사용자의 ID. Premium 및 Ultimate 전용.
name string 보호된 태그의 이름.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags/release-1-0"

응답 예시:

{
  "name": "release-1-0",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": 40,
      "access_level_description": "Maintainers"
    }
  ]
}

저장소 태그 보호#

히스토리

단일 저장소 태그 또는 와일드카드 보호된 태그를 사용하여 여러 프로젝트 저장소 태그를 보호합니다.

POST /projects/:id/protected_tags

지원되는 속성:

속성 유형 필수 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
name string 태그 또는 와일드카드의 이름.
allowed_to_create array 아니요 태그를 생성할 수 있는 액세스 레벨 배열. 각 항목은 {user_id: integer}, {group_id: integer}, {deploy_key_id: integer}, 또는 {access_level: integer} 형식의 해시로 설명됩니다. user_id, group_id, access_level은 Premium 및 Ultimate 전용.
create_access_level integer 아니요 생성을 허용하는 액세스 레벨. 기본값은 40(Maintainer 역할).

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

속성 유형 설명
create_access_levels array 생성 액세스 레벨 구성 배열.
create_access_levels[].access_level integer 태그 생성을 위한 액세스 레벨.
create_access_levels[].access_level_description string 액세스 레벨의 사람이 읽을 수 있는 설명.
create_access_levels[].deploy_key_id integer 생성 액세스 권한이 있는 배포 키의 ID.
create_access_levels[].group_id integer 생성 액세스 권한이 있는 그룹의 ID. Premium 및 Ultimate 전용.
create_access_levels[].id integer 생성 액세스 레벨 구성의 ID.
create_access_levels[].user_id integer 생성 액세스 권한이 있는 사용자의 ID. Premium 및 Ultimate 전용.
name string 보호된 태그의 이름.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags" \
  --data '{
   "allowed_to_create" : [
      {
         "user_id" : 1
      },
      {
         "access_level" : 30
      }
   ],
   "create_access_level" : 30,
   "name" : "*-stable"
}'

응답 예시:

{
  "name": "*-stable",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": 30,
      "access_level_description": "Developers + Maintainers"
    }
  ]
}

사용자 및 그룹 액세스가 있는 예시#

allowed_to_create 배열의 요소는 {user_id: integer}, {group_id: integer}, {deploy_key_id: integer}, 또는 {access_level: integer} 형식이어야 합니다. 각 사용자는 프로젝트에 액세스할 수 있어야 하며 각 그룹은 이 프로젝트를 공유해야 합니다. 이러한 액세스 레벨은 보호된 태그 액세스에 대한 보다 세밀한 제어를 허용합니다. 자세한 내용은 보호된 태그에 그룹 추가를 참조하세요.

다음 요청 예시는 특정 사용자 및 그룹에 생성 액세스를 허용하는 보호된 태그를 만드는 방법을 보여줍니다:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags" \
  --data "name=*-stable" \
  --data "allowed_to_create[][user_id]=10" \
  --data "allowed_to_create[][group_id]=20"

다음 응답 예시에 포함된 내용:

  • "*-stable" 이름의 보호된 태그.
  • ID 10을 가진 사용자를 위한 ID 1create_access_levels.
  • ID 20을 가진 그룹을 위한 ID 2create_access_levels.
{
  "name": "*-stable",
  "create_access_levels": [
    {
      "id": 1,
      "access_level": null,
      "user_id": 10,
      "group_id": null,
      "access_level_description": "Administrator"
    },
    {
      "id": 2,
      "access_level": null,
      "user_id": null,
      "group_id": 20,
      "access_level_description": "Example Create Group"
    }
  ]
}

저장소 태그 보호 해제#

주어진 보호된 태그 또는 와일드카드 보호된 태그의 보호를 해제합니다.

DELETE /projects/:id/protected_tags/:name

지원되는 속성:

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

성공 시 204 No Content를 반환합니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable"

관련 항목#