- 프로젝트 이슈 보드 목록
- 단일 이슈 보드 표시
- 이슈 보드 생성
- 이슈 보드 업데이트
- 이슈 보드 삭제
- 프로젝트 이슈 보드의 보드 목록 가져오기
- 단일 보드 목록 표시
- 보드 목록 생성
- 보드에서 목록 재정렬
- 보드에서 목록 삭제
프로젝트 이슈 보드 API
Offering: GitLab.com, Self-managed, GitLab Dedicated
모든 이슈 보드에 대한 API 호출은 인증을 받아야 합니다.
사용자가 개인 프로젝트의 멤버가 아닌 경우,
해당 프로젝트에 대한 GET
요청은 404
상태 코드를 반환합니다.
프로젝트 이슈 보드 목록
주어진 프로젝트의 이슈 보드를 나열합니다.
GET /projects/:id/boards
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 ID 또는 URL-인코딩 경로입니다. |
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-인코딩 경로입니다. |
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 |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
name |
문자열 | 예 | 새 보드의 이름입니다. |
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
}
이슈 보드 업데이트
프로젝트 이슈 보드를 업데이트합니다.
PUT /projects/:id/boards/:board_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
board_id |
정수 | 예 | 보드의 ID입니다. |
name |
문자열 | 아니오 | 보드의 새 이름입니다. |
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>" "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 |
정수 | 예 | 보드 목록의 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입니다. Premium 및 Ultimate 전용. |
milestone_id |
정수 | 아니오 | 마일스톤의 ID입니다. Premium 및 Ultimate 전용. |
참고: 레이블, 담당자 및 마일스톤 인자는 상호 배타적이며, 즉, 요청에서 이 중 하나만 허용됩니다.
각 목록 유형에 대한 필요한 라이센스에 대한 자세한 내용은 이슈 보드 문서를 확인하세요.
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"