- 프로젝트 이슈 보드 목록
- 단일 이슈 보드 표시
- 이슈 보드 생성
- 이슈 보드 업데이트
- 이슈 보드 삭제하기
- 프로젝트 이슈 보드의 리스트 목록 표시
- 단일 보드 리스트 표시
- 보드 리스트 생성
- 보드에서 목록 재정렬하기
- 보드에서 목록 삭제하기
프로젝트 이슈 보드 API
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
이슈 보드에 대한 모든 API 호출은 인증되어야 합니다.
만약 사용자가 비공개 프로젝트의 멤버가 아니라면, 해당 프로젝트에 대한 GET
요청은 404
상태 코드를 반환합니다.
프로젝트 이슈 보드 목록
주어진 프로젝트의 이슈 보드를 나열합니다.
GET /projects/:id/boards
속성 | 타입 | 필요 여부 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL-encoded path |
ㅤ | ㅤ | ㅤ | ㅤ |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards"
예시 응답:
[
{
"id" : 1,
"name": "board1",
"project": {
"id": 5,
"name": "Diaspora Project Site",
"name_with_namespace": "Diaspora / Diaspora Project Site",
"path": "diaspora-project-site",
"path_with_namespace": "diaspora/diaspora-project-site",
"http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
"web_url": "http://example.com/diaspora/diaspora-project-site"
},
"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
| integer/string | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL-encoded path |
board_id
| integer | 예 | 보드의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1"
예시 응답:
{
"id": 1,
"name": "project issue board",
"project": {
"id": 5,
"name": "Diaspora Project Site",
"name_with_namespace": "Diaspora / Diaspora Project Site",
"path": "diaspora-project-site",
"path_with_namespace": "diaspora/diaspora-project-site",
"http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
"web_url": "http://example.com/diaspora/diaspora-project-site"
},
"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
| integer/string | yes | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
name
| string | yes | 새로운 보드의 이름 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards?name=newboard"
예시 응답:
{
"id": 1,
"project": {
"id": 5,
"name": "Diaspora Project Site",
"name_with_namespace": "Diaspora / Diaspora Project Site",
"path": "diaspora-project-site",
"path_with_namespace": "diaspora/diaspora-project-site",
"http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
"web_url": "http://example.com/diaspora/diaspora-project-site"
},
"name": "newboard",
"lists" : [],
"group": null,
"milestone": null,
"assignee" : null,
"labels" : [],
"weight" : null
}
이슈 보드 업데이트
- GitLab 11.1에서 도입되었습니다.
프로젝트 이슈 보드를 업데이트합니다.
PUT /projects/:id/boards/:board_id
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
board_id
| integer | yes | 보드의 ID |
name
| string | no | 보드의 새 이름 |
assignee_id
| integer | no | 보드가 지정된 담당자. 프리미엄 및 얼티밋 전용. |
milestone_id
| integer | no | 보드가 대상으로 하는 마일스톤. 프리미엄 및 얼티밋 전용. |
labels
| string | no | 보드가 대상으로 하는 라벨 이름들의 쉼표로 구분된 목록. 프리미엄 및 얼티밋 전용. |
weight
| integer | no | 보드가 대상으로 하는 0부터 9까지의 가중치 범위. 프리미엄 및 얼티밋 전용. |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1?name=new_name&milestone_id=43&assignee_id=1&labels=Doing&weight=4"
예시 응답:
{
"id": 1,
"project": {
"id": 5,
"name": "Diaspora Project Site",
"name_with_namespace": "Diaspora / Diaspora Project Site",
"path": "diaspora-project-site",
"path_with_namespace": "diaspora/diaspora-project-site",
"created_at": "2018-07-03T05:48:49.982Z",
"default_branch": null,
"tag_list": [], //deprecated, use `topics` instead
"topics": [],
"ssh_url_to_repo": "ssh://user@example.com/diaspora/diaspora-project-site.git",
"http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
"web_url": "http://example.com/diaspora/diaspora-project-site",
"readme_url": null,
"avatar_url": null,
"star_count": 0,
"forks_count": 0,
"last_activity_at": "2018-07-03T05:48:49.982Z"
},
"lists": [],
"name": "new_name",
"group": null,
"milestone": {
"id": 43,
"iid": 1,
"project_id": 15,
"title": "Milestone 1",
"description": "Milestone 1 desc",
"state": "active",
"created_at": "2018-07-03T06:36:42.618Z",
"updated_at": "2018-07-03T06:36:42.618Z",
"due_date": null,
"start_date": null,
"web_url": "http://example.com/root/board1/milestones/1"
},
"assignee": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://example.com/root"
},
"labels": [{
"id": 10,
"name": "Doing",
"color": "#5CB85C",
"description": null
}],
"weight": 4
}
이슈 보드 삭제하기
프로젝트 이슈 보드를 삭제합니다.
DELETE /projects/:id/boards/:board_id
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
board_id
| 정수 | 예 | 보드의 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1"
프로젝트 이슈 보드의 리스트 목록 표시
보드의 리스트 목록을 가져옵니다.
open
및 closed
리스트는 포함되지 않습니다.
GET /projects/:id/boards/:board_id/lists
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트의 ID 또는 URL 인코딩된 경로 |
board_id
| 정수 | 예 | 보드의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "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
| integer | 예 | 보드의 리스트의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "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. 프리미엄 및 얼티밋 전용입니다. |
milestone_id
| 정수 | 아니요 | 마일스톤의 ID. 프리미엄 및 얼티밋 전용입니다. |
참고: 레이블, 담당자 및 마일스톤 인수는 상호 배타적이며, 즉, 요청에는 하나만 허용됩니다. 각 리스트 유형의 필요 라이선스에 대한 자세한 내용은 이슈 보드 문서를 확인하세요.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists?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>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1?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>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1"