Epic Issues API
경고: Epics REST API는 GitLab 17.0에서 deprecated되었으며 API v5에서 제거될 예정입니다. GitLab 17.4 이상에서, 만약 관리자가 에픽의 새로운 디자인을 활성화했다면, 대신 Work Items API를 사용하세요. 이 변경 사항은 파괴적인 변경입니다.
에픽 이슈 API 엔드포인트로의 모든 API 호출은 인증되어야 합니다.
사용자가 그룹의 구성원이 아니고 그룹이 비공개인 경우, 해당 그룹에 대한 GET
요청은 404
상태 코드를 반환합니다.
에픽은 GitLab의 프리미엄 및 얼티밋에서만 사용할 수 있습니다. 에픽 기능을 사용할 수 없는 경우 403
상태 코드가 반환됩니다.
에픽 이슈 페이지네이션
API 결과는 페이지별로 나뉩니다. 여러 이슈를 반환하는 요청은 한 번에 20개의 결과를 반환하는 것이 기본입니다.
에픽의 이슈 목록
인증된 사용자가 액세스할 수 있는 에픽에 할당된 모든 이슈를 가져옵니다.
GET /groups/:id/epics/:epic_iid/issues
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코드된 경로 |
epic_iid
| 정수/문자열 | 예 | 에픽의 내부 ID. |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/issues/"
예시 응답:
[
{
"id": 76,
"iid": 6,
"project_id": 8,
"title": "Consequatur vero maxime deserunt laboriosam est voluptas dolorem.",
"description": "Ratione dolores corrupti mollitia soluta quia.",
"state": "opened",
"created_at": "2017-11-15T13:39:24.670Z",
"updated_at": "2018-01-04T10:49:19.506Z",
"closed_at": null,
"labels": [],
"milestone": {
"id": 38,
"iid": 3,
"project_id": 8,
"title": "v2.0",
"description": "In tempore culpa inventore quo accusantium.",
"state": "closed",
"created_at": "2017-11-15T13:39:13.825Z",
"updated_at": "2017-11-15T13:39:13.825Z",
"due_date": null,
"start_date": null
},
"assignees": [
{
"id": 7,
"name": "Pamella Huel",
"username": "arnita",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/a2f5c6fcef64c9c69cb8779cb292be1b?s=80&d=identicon",
"web_url": "http://localhost:3001/arnita"
}
],
"assignee": {
"id": 7,
"name": "Pamella Huel",
"username": "arnita",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/a2f5c6fcef64c9c69cb8779cb292be1b?s=80&d=identicon",
"web_url": "http://localhost:3001/arnita"
}
// ... (중략)
}
]
참고: assignee
열은 deprecated되었으며, 이제 GitLab EE API에 맞추기 위해 단일 크기의 배열 assignees
로 표시됩니다.
에픽에 이슈 할당
에픽과 이슈를 연결시킵니다. 해당 이슈가 다른 에픽에 속하는 경우 해당 에픽에서 할당이 해제됩니다.
POST /groups/:id/epics/:epic_iid/issues/:issue_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코드된 경로 |
epic_iid
| 정수/문자열 | 예 | 에픽의 내부 ID. |
issue_id
| 정수/문자열 | 예 | 이슈의 ID. |
curl --header POST "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/issues/55"
예시 응답:
{
"id": 11,
"epic": {
"id": 30,
"iid": 5,
"title": "Ea cupiditate dolores ut vero consequatur quasi veniam voluptatem et non.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum."
// ... (중략)
},
"issue": {
"id": 55,
"iid": 13,
"project_id": 8,
"title": "Beatae laborum voluptatem voluptate eligendi ex accusamus.",
"description": "Quam veritatis debitis omnis aliquam sit."
// ... (중략)
}
}
참고: assignee
열은 deprecated되었으며, 이제 GitLab EE API에 맞추기 위해 단일 크기의 배열 assignees
로 표시됩니다.
Epic에서 이슈 제거
에픽 - 이슈 연결을 제거합니다.
DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 그룹의 ID 또는 URL-encoded path |
epic_iid
| integer/string | 예 | 에픽의 내부 ID. |
epic_issue_id
| integer/string | 예 | 이슈 - 에픽 연관의 ID. |
curl --header DELETE "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/issues/11"
예시 응답:
{
"id": 11,
"epic": {
"id": 30,
"iid": 5,
"title": "Ea cupiditate dolores ut vero consequatur quasi veniam voluptatem et non.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"id": 7,
"name": "Pamella Huel",
"username": "arnita",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/a2f5c6fcef64c9c69cb8779cb292be1b?s=80&d=identicon",
"web_url": "http://localhost:3001/arnita"
},
"start_date": null,
"end_date": null
},
"issue": {
"id": 223,
"iid": 13,
"project_id": 8,
"title": "Beatae laborum voluptatem voluptate eligendi ex accusamus.",
"description": "Quam veritatis debitis omnis aliquam sit.",
"state": "opened",
"created_at": "2017-11-05T13:59:12.782Z",
"updated_at": "2018-01-05T10:33:03.900Z",
"closed_at": null,
"labels": [],
"milestone": {
"id": 48,
"iid": 6,
"project_id": 8,
"title": "Sprint - Sed sed maxime temporibus ipsa ullam qui sit.",
"description": "Quos veritatis qui expedita sunt deleniti accusamus.",
"state": "active",
"created_at": "2017-11-05T13:59:12.445Z",
"updated_at": "2017-11-05T13:59:12.445Z",
"due_date": "2017-11-13",
"start_date": "2017-11-05"
},
"assignees": [
{
"id": 10,
"name": "Lu Mayer",
"username": "kam",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon",
"web_url": "http://localhost:3001/kam"
}
],
"assignee": {
"id": 10,
"name": "Lu Mayer",
"username": "kam",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon",
"web_url": "http://localhost:3001/kam"
},
"author": {
"id": 25,
"name": "User 3",
"username": "user3",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/97d6d9441ff85fdc730e02a6068d267b?s=80&d=identicon",
"web_url": "http://localhost:3001/user3"
},
"user_notes_count": 0,
"upvotes": 0,
"downvotes": 0,
"due_date": null,
"confidential": false,
"weight": null,
"discussion_locked": null,
"web_url": "http://localhost:3001/h5bp/html5-boilerplate/issues/13",
"time_stats": {
"time_estimate": 0,
"total_time_spent": 0,
"human_time_estimate": null,
"human_total_time_spent": null
}
}
}
참고: assignee
열은 폐기되었으며, 이제 GitLab EE API에 대한 요구 사항으로 최대한 부합하도록 assignees
로 표시합니다.
에픽 - 이슈 연관 업데이트
에픽 - 이슈 연관을 업데이트합니다.
PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 그룹의 ID 또는 URL-encoded path |
epic_iid
| integer/string | 예 | 에픽의 내부 ID. |
epic_issue_id
| integer/string | 예 | 이슈 - 에픽 연관의 ID. |
move_before_id
| integer/string | 아니오 | 문제가 될 이슈 - 에픽 연관의 ID를 링크 전에 배치해야 하는 ID. |
move_after_id
| integer/string | 아니오 | 문제가 될 이슈 - 에픽 연관의 ID를 링크 후에 배치해야 하는 ID. |
curl --header PUT "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/issues/11?move_before_id=20"
예시 응답:
[
{
"id": 30,
"iid": 6,
"project_id": 8,
"title": "Consequatur vero maxime deserunt laboriosam est voluptas dolorem.",
"description": "Ratione dolores corrupti mollitia soluta quia.",
"state": "opened",
"created_at": "2017-11-15T13:39:24.670Z",
"updated_at": "2018-01-04T10:49:19.506Z",
"closed_at": null,
"labels": [],
"milestone": {
"id": 38,
"iid": 3,
"project_id": 8,
"title": "v2.0",
"description": "In tempore culpa inventore quo accusantium.",
"state": "closed",
"created_at": "2017-11-15T13:39:13.825Z",
"updated_at": "2017-11-15T13:39:13.825Z",
"due_date": null,
"start_date": null
},
"assignees": [
{
"id": 7,
"name": "Pamella Huel",
"username": "arnita",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/a2f5c6fcef64c9c69cb8779cb292be1b?s=80&d=identicon",
"web_url": "http://localhost:3001/arnita"
}
],
"assignee": {
"id": 7,
"name": "Pamella Huel",
"username": "arnita",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/a2f5c6fcef64c9c69cb8779cb292be1b?s=80&d=identicon",
"web_url": "http://localhost:3001/arnita"
},
"author": {
"id": 13,
"name": "Michell Johns",
"username": "chris_hahn",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/30e3b2122ccd6b8e45e8e14a3ffb58fc?s=80&d=identicon",
"web_url": "http://localhost:3001/chris_hahn"
},
"user_notes_count": 8,
"upvotes": 0,
"downvotes": 0,
"due_date": null,
"confidential": false,
"weight": null,
"discussion_locked": null,
"web_url": "http://localhost:3001/h5bp/html5-boilerplate/issues/6",
"time_stats": {
"time_estimate": 0,
"total_time_spent": 0,
"human_time_estimate": null,
"human_total_time_spent": null
},
"_links": {
"self": "http://localhost:3001/api/v4/projects/8/issues/6",
"notes": "http://localhost:3001/api/v4/projects/8/issues/6/notes",
"award_emoji": "http://localhost:3001/api/v4/projects/8/issues/6/award_emoji",
"project": "http://localhost:3001/api/v4/projects/8"
},
"subscribed": true,
"epic_issue_id": 11,
"relative_position": 55
}
]