라벨 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 부울 아니오 이슈 및 병합 요청 건수를 포함할지 여부. 기본값은 false입니다. (GitLab 12.2에서 도입)
include_ancestor_groups 부울 아니오 상위 그룹을 포함할지 여부. 기본값은 true입니다.
search 문자열 아니오 라벨로 필터링할 키워드. GitLab 13.6에서 도입되었습니다.
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 integer/string yes 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로
name string yes 라벨의 이름
color string yes 6자리 16진수 표기법으로 된 라벨의 색상(‘#’ 기호와 함께, 예: #FFAABB) 또는 CSS 색상 이름 중 하나
description string no 라벨의 설명
priority integer no 라벨의 우선 순위. 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 integer 또는 string yes 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로
label_id integer 또는 string yes 그룹 라벨의 ID 또는 제목
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/labels/bug"

참고: 이전 엔드포인트 DELETE /projects/:id/labels는 여전히 사용 가능하지만, 사용이 중단되었습니다.

기존 라벨 편집하기

기존 라벨의 이름 또는 새 색상으로 업데이트합니다. 라벨을 업데이트하려면 적어도 하나의 매개변수가 필요합니다.

PUT /projects/:id/labels/:label_id
속성 타입 필수 설명
id integer 또는 string yes 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로
label_id integer 또는 string yes 그룹 라벨의 ID 또는 제목
new_name string color가 제공되지 않으면 yes 라벨의 새 이름
color string new_name이 제공되지 않으면 yes 6자리 16진수 표기법으로 된 라벨의 색상(‘#’ 기호와 함께, 예: #FFAABB) 또는 CSS 색상 이름 중 하나
description string no 라벨의 새 설명
priority integer no 라벨의 새 우선 순위. 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
}

참고: 이전 엔드포인트 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
}

참고: 이전 엔드포인트 PUT /projects/:id/labels/promotename을 포함한 매개변수는 여전히 사용 가능하지만 deprecate되었습니다.

라벨 구독하기

인증된 사용자를 라벨에 구독하여 알림을 받을 수 있습니다. 사용자가 이미 라벨에 구독되어 있는 경우 상태 코드 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"