레이블 API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

레이블을 REST API를 사용하여 상호 작용합니다.

note
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"
note
매개변수에 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
}
note
매개변수에 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
}
note
매개변수에 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"