보호된 태그 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 보호된 태그를 관리합니다. 프로젝트의 보호된 태그 목록을 가져옵니다. 성공 시 200 OK와 다음 응답 속성을 반환합니다: 단일 보호된 태그 또는 와일드카드 보호된 태그를 가져옵니다. 단일 저장소 태그 또는 와일드카드 보호된 태그를 사용하여 여러 프로젝트 저장소 태그를 보호합니다.
이 API를 사용하여 보호된 태그를 관리합니다.
유효한 액세스 레벨#
다음 액세스 레벨이 인식됩니다:
0: 액세스 없음30: Developer 역할40: Maintainer 역할
보호된 태그 목록#
히스토리
- 배포 키 정보가 GitLab 16.0에서 도입되었습니다.
프로젝트의 보호된 태그 목록을 가져옵니다.
이 함수는 보호된 태그 목록을 제한하기 위한 페이지네이션 매개변수 page 및 per_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"
}
]
}
저장소 태그 보호#
히스토리
deploy_key_id구성이 GitLab 17.5에서 도입되었습니다.deploy_key_id구성이 GitLab 18.10에서 GitLab Premium에서 GitLab Free로 이동되었습니다.
단일 저장소 태그 또는 와일드카드 보호된 태그를 사용하여 여러 프로젝트 저장소 태그를 보호합니다.
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을 가진 사용자를 위한 ID1의create_access_levels. - ID
20을 가진 그룹을 위한 ID2의create_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"
