이슈 보드 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 프로젝트 이슈 보드를 관리합니다. 지정된 프로젝트의 모든 이슈 보드 목록을 반환합니다. 프로젝트에 보드가 활성화되지 않았거나 존재하지 않을 때의 응답 예시: 프로젝트의 지정된 이슈 보드를 조회합니다.
이 API를 사용하여 프로젝트 이슈 보드를 관리합니다.
프로젝트의 모든 이슈 보드 목록#
지정된 프로젝트의 모든 이슈 보드 목록을 반환합니다.
GET /projects/:id/boards
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards"
응답 예시:
[
{
"id": 1,
"name": "board1",
"project": {
"id": 5,
"name": "Testing",
"name_with_namespace": "Testing",
"path": "testing",
"path_with_namespace": "testing"
},
"milestone": {
"id": 12,
"title": "10.0"
},
"lists" : [
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 2,
"label" : {
"name" : "Ready",
"color" : "#FF0000",
"description" : null
},
"position" : 2,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 3,
"label" : {
"name" : "Production",
"color" : "#FF5F00",
"description" : null
},
"position" : 3,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
]
}
]
프로젝트에 보드가 활성화되지 않았거나 존재하지 않을 때의 응답 예시:
[]
이슈 보드 조회#
프로젝트의 지정된 이슈 보드를 조회합니다.
GET /projects/:id/boards/:board_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1"
응답 예시:
{
"id": 1,
"name": "board1",
"project": {
"id": 5,
"name": "Testing",
"name_with_namespace": "Testing",
"path": "testing",
"path_with_namespace": "testing"
},
"milestone": {
"id": 12,
"title": "10.0"
},
"lists" : [
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 2,
"label" : {
"name" : "Ready",
"color" : "#FF0000",
"description" : null
},
"position" : 2,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 3,
"label" : {
"name" : "Production",
"color" : "#FF5F00",
"description" : null
},
"position" : 3,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
]
}
보드 생성#
지정된 프로젝트에 이슈 보드를 생성합니다.
POST /projects/:id/boards
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
name |
문자열 | 예 | 새 보드의 이름. |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards?name=newboard"
응답 예시:
{
"id": 1,
"project": {
"id": 5,
"name": "Testing",
"name_with_namespace": "Testing",
"path": "testing",
"path_with_namespace": "testing"
},
"name": "newboard",
"milestone": {
"id": 12,
"title": "10.0"
},
"lists" : [
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 2,
"label" : {
"name" : "Ready",
"color" : "#FF0000",
"description" : null
},
"position" : 2,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 3,
"label" : {
"name" : "Production",
"color" : "#FF5F00",
"description" : null
},
"position" : 3,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
]
}
보드 업데이트#
프로젝트의 지정된 이슈 보드를 업데이트합니다.
PUT /projects/:id/boards/:board_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
name |
문자열 | 아니요 | 보드의 새 이름. |
hide_backlog_list |
부울 | 아니요 | true로 설정하면 모든 오픈 이슈가 있는 목록을 숨깁니다. |
hide_closed_list |
부울 | 아니요 | true로 설정하면 모든 닫힌 이슈가 있는 목록을 숨깁니다. |
assignee_id |
정수 | 아니요 | 보드의 담당자. Premium 및 Ultimate. |
milestone_id |
정수 | 아니요 | 보드의 마일스톤. Premium 및 Ultimate. |
labels |
문자열 | 아니요 | 보드에 적용할 레이블의 쉼표로 구분된 목록. Premium 및 Ultimate. |
weight |
정수 | 아니요 | 보드의 가중치 범위 (0에서 9). Premium 및 Ultimate. |
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1?name=groceries"
응답 예시:
{
"id": 1,
"project": {
"id": 5,
"name": "Testing",
"name_with_namespace": "Testing",
"path": "testing",
"path_with_namespace": "testing"
},
"name": "groceries",
"milestone": {
"id": 12,
"title": "10.0"
},
"assignee": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "https://gitlab.example.com/root"
},
"labels": [
{
"id": 5,
"name": "Stuck",
"color": "#7E3EE3",
"description": null,
"description_html": "",
"text_color": "#FFFFFF",
"remove_on_close": false
}
],
"weight": 4,
"lists" : [
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 2,
"label" : {
"name" : "Ready",
"color" : "#FF0000",
"description" : null
},
"position" : 2,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 3,
"label" : {
"name" : "Production",
"color" : "#FF5F00",
"description" : null
},
"position" : 3,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
]
}
보드 삭제#
프로젝트의 지정된 이슈 보드를 삭제합니다.
DELETE /projects/:id/boards/:board_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1"
이슈 보드의 모든 보드 목록 나열#
지정된 이슈 보드의 모든 목록을 반환합니다.
GET /projects/:id/boards/:board_id/lists
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1/lists"
응답 예시:
[
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 2,
"label" : {
"name" : "Ready",
"color" : "#FF0000",
"description" : null
},
"position" : 2,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
},
{
"id" : 3,
"label" : {
"name" : "Production",
"color" : "#FF5F00",
"description" : null
},
"position" : 3,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
]
보드 목록 조회#
이슈 보드에서 지정된 목록을 조회합니다.
GET /projects/:id/boards/:board_id/lists/:list_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
list_id |
정수 | 예 | 보드 목록의 ID. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1"
응답 예시:
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
보드 목록 생성#
새 이슈 보드 목록을 생성합니다.
POST /projects/:id/boards/:board_id/lists
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
label_id |
정수 | 아니요 | 레이블의 ID. |
assignee_id |
정수 | 아니요 | 사용자의 ID. Premium 및 Ultimate만 해당. |
milestone_id |
정수 | 아니요 | 마일스톤의 ID. Premium 및 Ultimate만 해당. |
iteration_id |
정수 | 아니요 | 이터레이션의 ID. Premium 및 Ultimate만 해당. |
label, assignee, milestone 인수는 상호 배타적이며, 요청에서 하나만 허용됩니다. 각 목록 유형에 필요한 라이선스에 대한 자세한 내용은 이슈 보드 문서를 참조하세요.
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1/lists" \
--data "label_id=5"
응답 예시:
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
보드 목록 업데이트#
이슈 보드에서 지정된 목록의 위치를 업데이트합니다.
PUT /projects/:id/boards/:board_id/lists/:list_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
list_id |
정수 | 예 | 보드 목록의 ID. |
position |
정수 | 예 | 목록의 위치. |
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1" \
--data "position=2"
응답 예시:
{
"id" : 1,
"label" : {
"name" : "Testing",
"color" : "#F0AD4E",
"description" : null
},
"position" : 1,
"max_issue_count": 0,
"max_issue_weight": 0,
"limit_metric": null
}
보드에서 보드 목록 삭제#
이슈 보드에서 지정된 목록을 삭제합니다. 관리자 및 프로젝트 소유자만 가능합니다.
DELETE /projects/:id/boards/:board_id/lists/:list_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로. |
board_id |
정수 | 예 | 보드의 ID. |
list_id |
정수 | 예 | 보드 목록의 ID. |
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1"
