Epic Links API
Tier: Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
History
- Introduced in GitLab 11.8.
부모-자식 Epic 관계를 관리합니다.
epic_links
에 대한 모든 API 호출은 인증되어야 합니다.
사용자가 비공개 그룹의 구성원이 아닌 경우, 해당 그룹에 대한 GET
요청은 404
상태 코드를 반환합니다.
다단계 Epic은 GitLab Ultimate에서만 사용할 수 있습니다. 만약 다단계 Epic 기능을 사용할 수 없는 경우, 403
상태 코드가 반환됩니다.
특정 Epic과 관련된 Epic 목록 가져오기
특정 Epic의 모든 하위 Epic을 가져옵니다.
GET /groups/:id/epics/:epic_iid/epics
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
epic_iid
| integer | yes | Epic의 내부 ID입니다. |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/epics/"
예시 응답:
[
{
"id": 29,
"iid": 6,
"group_id": 1,
"parent_id": 5,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"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"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}
]
하위 Epic 할당
두 개의 Epic 간의 연관성을 생성하여 하나를 상위 Epic으로 지정하고 다른 하나를 하위 Epic으로 지정합니다. 상위 Epic은 여러 하위 Epic을 가질 수 있습니다. 새로운 하위 Epic이 이미 다른 Epic에 속해 있는 경우, 그 이전의 상위 Epic에서 제외됩니다.
POST /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
epic_iid
| integer | yes | Epic의 내부 ID입니다. |
child_epic_id
| integer | yes | 하위 Epic의 전역 ID입니다. 내부 ID를 사용할 수 없습니다. 다른 그룹의 Epic과 충돌할 수 있기 때문입니다. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/epics/6"
예시 응답:
{
"id": 6,
"iid": 38,
"group_id": 1,
"parent_id": 5,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"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"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}
하위 epic 만들고 할당하기
새로운 epic을 생성하고 지정된 상위 epic과 연결합니다. 응답은 LinkedEpic 객체입니다.
POST /groups/:id/epics/:epic_iid/epics
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩 된 경로 |
epic_iid
| integer | 예 | (향후 부모가 될) epic의 내부 ID |
title
| string | 예 | 새로 생성된 epic의 제목 |
confidential
| boolean | 아니요 | epic이 기밀이어야 하는지 여부. confidential_epics 피쳐 플래그가 비활성화된 경우 매개변수는 무시됩니다. 기본값은 부모 epic의 기밀 상태입니다.
|
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic"
예시 응답:
{
"id": 24,
"iid": 2,
"title": "하위 epic",
"group_id": 49,
"parent_id": 23,
"has_children": false,
"has_issues": false,
"reference": "&2",
"url": "http://localhost/groups/group16/-/epics/2",
"relation_url": "http://localhost/groups/group16/-/epics/1/links/24"
}
하위 epic 재배열하기
PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | 예 | 인증된 사용자가 소유한 그룹의 URL 인코딩 된 경로나 ID |
epic_iid
| integer | 예 | epic의 내부 ID |
child_epic_id
| integer | 예 | 하위 epic의 글로벌 ID. 내부 ID는 다른 그룹의 epics와 충돌할 수 있기 때문에 사용할 수 없습니다. |
move_before_id
| integer | 아니요 | 하위 epic 앞에 배치해야 하는 형제 epic의 글로벌 ID |
move_after_id
| integer | 아니요 | 하위 epic 뒤에 배치해야 하는 형제 epic의 글로벌 ID |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5"
예시 응답:
[
{
"id": 29,
"iid": 6,
"group_id": 1,
"parent_id": 5,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"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"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}
]
하위 Epic의 할당 해제
부모 Epic에서 하위 Epic의 할당을 해제합니다.
DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
epic_iid
| 정수 | 예 | Epic의 내부 ID입니다. |
child_epic_id
| 정수 | 예 | 하위 Epic의 글로벌 ID입니다. 내부 ID는 다른 그룹의 Epic과 충돌할 수 있기 때문에 사용할 수 없습니다. |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5"
예시 응답:
{
"id": 5,
"iid": 38,
"group_id": 1,
"parent_id": null,
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"author": {
"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"
},
"start_date": null,
"start_date_is_fixed": false,
"start_date_fixed": null,
"start_date_from_milestones": null, //deprecated in favor of start_date_from_inherited_source
"start_date_from_inherited_source": null,
"end_date": "2018-07-31", //deprecated in favor of due_date
"due_date": "2018-07-31",
"due_date_is_fixed": false,
"due_date_fixed": null,
"due_date_from_milestones": "2018-07-31", //deprecated in favor of start_date_from_inherited_source
"due_date_from_inherited_source": "2018-07-31",
"created_at": "2018-07-17T13:36:22.770Z",
"updated_at": "2018-07-18T12:22:05.239Z",
"labels": []
}