레이블 API
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
레이블을 REST API를 사용하여 상호 작용합니다.
description_html
-는 GitLab 12.7에서 응답 JSON에 추가되었습니다.레이블 디렉터리
지정된 프로젝트의 모든 레이블을 가져옵니다.
기본적으로 이 요청은 API 결과가 페이지 나누기되므로 한 번에 20개의 결과를 반환합니다.
GET /projects/:id/labels
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
with_counts
| 부울 | 아니요 | 이슈 및 Merge Request 수를 포함할지 여부. 기본값은 false . (GitLab 12.2에 도입됨)
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels?with_counts=true"
예시 응답:
[
{
"id" : 1,
"name" : "bug",
"color" : "#d9534f",
"text_color" : "#FFFFFF",
"description": "사용자가 보고한 버그",
"description_html": "사용자가 보고한 버그",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 1,
"subscribed": false,
"priority": 10,
"is_project_label": true
},
{
"id" : 4,
"color" : "#d9534f",
"text_color" : "#FFFFFF",
"name" : "confirmed",
"description": "확인된 이슈",
"description_html": "확인된 이슈",
"open_issues_count": 2,
"closed_issues_count": 5,
"open_merge_requests_count": 0,
"subscribed": false,
"priority": null,
"is_project_label": true
},
{
"id" : 7,
"name" : "critical",
"color" : "#d9534f",
"text_color" : "#FFFFFF",
"description": "중요한 이슈. 빠른 수정이 필요함",
"description_html": "중요한 이슈. 빠른 수정이 필요함",
"open_issues_count": 1,
"closed_issues_count": 3,
"open_merge_requests_count": 1,
"subscribed": false,
"priority": null,
"is_project_label": true
},
{
"id" : 8,
"name" : "documentation",
"color" : "#f0ad4e",
"text_color" : "#FFFFFF",
"description": "문서에 관한 이슈",
"description_html": "문서에 관한 이슈",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 2,
"subscribed": false,
"priority": null,
"is_project_label": false
},
{
"id" : 9,
"color" : "#5cb85c",
"text_color" : "#FFFFFF",
"name" : "enhancement",
"description": "기능 개선 제안",
"description_html": "기능 개선 제안",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 1,
"subscribed": true,
"priority": null,
"is_project_label": true
}
]
단일 프로젝트 레이블 가져오기
지정된 프로젝트의 단일 레이블을 가져옵니다.
GET /projects/:id/labels/:label_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
label_id
| 정수 또는 문자열 | 예 | 프로젝트의 레이블의 ID 또는 제목. |
include_ancestor_groups
| 부울 | 아니요 | 조상 그룹을 포함할지 여부. 기본값은 true .
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/bug"
예시 응답:
{
"id" : 1,
"name" : "bug",
"color" : "#d9534f",
"text_color" : "#FFFFFF",
"description": "사용자가 보고한 버그",
"description_html": "사용자가 보고한 버그",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 1,
"subscribed": false,
"priority": 10,
"is_project_label": true
}
새 레이블 생성
지정된 리포지터리에 지정된 이름과 색상의 새 레이블을 만듭니다.
POST /projects/:id/labels
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
name
| 문자열 | 예 | 레이블의 이름 |
color
| 문자열 | 예 | 6자리 16진수 표기법 및 선행 ‘#’ 기호로 지정된 레이블의 색상 (예: #FFAABB) 또는 CSS color names 중 하나 |
description
| 문자열 | 아니요 | 레이블의 설명 |
priority
| 정수 | 아니요 | 레이블의 우선 순위. 0 이상이거나 우선 순위를 제거하려면 null 을 지정해야 합니다.
|
curl --data "name=feature&color=#5843AD" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels"
예시 응답:
{
"id" : 10,
"name" : "feature",
"color" : "#5843AD",
"text_color" : "#FFFFFF",
"description":null,
"description_html":null,
"open_issues_count": 0,
"closed_issues_count": 0,
"open_merge_requests_count": 0,
"subscribed": false,
"priority": null,
"is_project_label": true
}
라벨 삭제
주어진 이름의 라벨을 삭제합니다.
DELETE /projects/:id/labels/:label_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
label_id
| 정수 또는 문자열 | 예 | 그룹의 라벨의 ID 또는 제목 |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/bug"
매개변수에
name
이 있는 구버전 엔드포인트 DELETE /projects/:id/labels
도 여전히 사용 가능하지만 폐지되었습니다.기존 라벨 편집
기존 라벨의 이름 또는 색상을 업데이트합니다. 라벨을 업데이트하려면 적어도 하나의 매개변수가 필요합니다.
PUT /projects/:id/labels/:label_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
label_id
| 정수 또는 문자열 | 예 | 그룹의 라벨의 ID 또는 제목 |
new_name
| 문자열 |
color 가 제공되지 않으면 예
| 라벨의 새 이름 |
color
| 문자열 |
new_name 이 제공되지 않으면 예
| 6자리 16진수 표기법으로 앞에 ‘#’ 기호가 붙은 라벨의 색상 (예: #FFAABB) 또는 CSS 색상 이름 중 하나 |
description
| 문자열 | 아니오 | 라벨의 새 설명 |
priority
| 정수 | 아니오 | 라벨의 새 우선 순위. 0보다 크거나 같아야 하거나 우선 순위를 제거하려면 null
|
curl --request PUT --data "new_name=docs&color=#8E44AD&description=Documentation" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/documentation"
응답 예시:
{
"id" : 8,
"name" : "docs",
"color" : "#8E44AD",
"text_color" : "#FFFFFF",
"description": "Documentation",
"description_html": "Documentation",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 2,
"subscribed": false,
"priority": null,
"is_project_label": true
}
매개변수에
name
또는 label_id
가 있는 구버전 엔드포인트 PUT /projects/:id/labels
도 여전히 사용 가능하지만 폐지되었습니다.프로젝트 라벨을 그룹 라벨로 승격
- GitLab 12.3에서 소개.
- GitLab 13.6 및 이후에서 프로젝트 라벨을 승격하면 해당 라벨의 ID가 유지되고 그룹 라벨로 변경됩니다. 이전에는 프로젝트 라벨을 승격하면 새로운 ID로 그룹 라벨이 만들어지고 이전 라벨이 삭제되었습니다.
프로젝트 라벨을 그룹 라벨로 승격합니다. 라벨은 ID를 유지합니다.
PUT /projects/:id/labels/:label_id/promote
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
label_id
| 정수 또는 문자열 | 예 | 그룹의 라벨의 ID 또는 제목 |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/documentation/promote"
응답 예시:
{
"id" : 8,
"name" : "documentation",
"color" : "#8E44AD",
"description": "Documentation",
"description_html": "Documentation",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 2,
"subscribed": false
}
매개변수에
name
이 있는 구버전 엔드포인트 PUT /projects/:id/labels/promote
도 여전히 사용 가능하지만 폐지되었습니다.라벨 구독
인증된 사용자가 알림을 받기 위해 라벨을 구독합니다.
사용자가 이미 라벨을 구독했을 경우 상태 코드 304
가 반환됩니다.
POST /projects/:id/labels/:label_id/subscribe
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
label_id
| 정수 또는 문자열 | 예 | 프로젝트의 라벨의 ID 또는 제목 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/labels/1/subscribe"
응답 예시:
{
"id" : 1,
"name" : "bug",
"color" : "#d9534f",
"text_color" : "#FFFFFF",
"description": "Bug reported by user",
"description_html": "Bug reported by user",
"open_issues_count": 1,
"closed_issues_count": 0,
"open_merge_requests_count": 1,
"subscribed": true,
"priority": null,
"is_project_label": true
}
라벨 구독 취소
인증된 사용자가 해당 라벨에서의 알림을 받지 않도록 라벨의 구독을 취소합니다. 사용자가 해당 라벨에 구독되어 있지 않은 경우 304
상태 코드가 반환됩니다.
POST /projects/:id/labels/:label_id/unsubscribe
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
label_id
| 정수 또는 문자열 | 예 | 프로젝트의 라벨 ID 또는 제목 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/labels/1/unsubscribe"