InfoGrab DocsInfoGrab Docs

Epic Links API (deprecated)

요약

Epics REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. epic_links에 대한 모든 API 호출은 인증을 거쳐야 합니다. 비공개 그룹의 멤버가 아닌 사용자가 해당 그룹에 GET 요청을 보내면 404 상태 코드가 반환됩니다.

Warning

Epics REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. GitLab 17.4부터 18.0 까지는 에픽의 새 화면이 활성화된 경우, 그리고 GitLab 18.1 이상에서는 Work Items API를 대신 사용합니다. 자세한 내용은 에픽 API를 작업 항목으로 마이그레이션을 참고합니다. 이 변경은 브레이킹 체인지입니다.

부모-자식 에픽 관계를 관리합니다.

epic_links에 대한 모든 API 호출은 인증을 거쳐야 합니다.

비공개 그룹의 멤버가 아닌 사용자가 해당 그룹에 GET 요청을 보내면 404 상태 코드가 반환됩니다.

다단계 에픽은 GitLab Ultimate에서만 사용할 수 있습니다. 다단계 에픽 기능을 사용할 수 없으면 403 상태 코드가 반환됩니다.

에픽의 모든 자식 에픽 조회#

에픽의 모든 자식 에픽을 조회합니다.

GET /groups/:id/epics/:epic_iid/epics
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
  }
]

자식 에픽 할당#

두 에픽 사이에 연관을 만들어 하나를 부모 에픽으로, 다른 하나를 자식 에픽으로 지정합니다. 부모 에픽은 여러 자식 에픽을 가질 수 있습니다. 새 자식 에픽이 이미 다른 에픽에 속해 있었다면 이전 부모에서 할당이 해제됩니다.

POST /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
child_epic_id integer 예 자식 에픽의 전역 ID 입니다. 다른 그룹의 에픽과 충돌할 수 있어 내부 ID는 사용할 수 없습니다.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
}

자식 에픽 생성 및 할당#

새 에픽을 생성하고 지정한 부모 에픽에 연결합니다. 응답은 LinkedEpic 객체입니다.

POST /groups/:id/epics/:epic_iid/epics
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 부모가 될 에픽의 내부 ID 입니다.
title string 예 새로 생성할 에픽의 제목입니다.
confidential boolean 아니요 에픽을 비공개로 할지 여부입니다. confidential_epics 기능 플래그가 비활성화되어 있으면 이 파라미터는 무시됩니다. 기본값은 부모 에픽의 비공개 상태입니다.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic"

응답 예시:

{
  "id": 24,
  "iid": 2,
  "title": "child 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"
}

자식 에픽 순서 변경#

PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
child_epic_id integer 예 자식 에픽의 전역 ID 입니다. 다른 그룹의 에픽과 충돌할 수 있어 내부 ID는 사용할 수 없습니다.
move_before_id integer 아니요 자식 에픽보다 앞에 배치할 형제 에픽의 전역 ID 입니다.
move_after_id integer 아니요 자식 에픽보다 뒤에 배치할 형제 에픽의 전역 ID 입니다.
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
  }
]

자식 에픽 할당 해제#

부모 에픽에서 자식 에픽의 할당을 해제합니다.

DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
child_epic_id integer 예 자식 에픽의 전역 ID 입니다. 다른 그룹의 에픽과 충돌할 수 있어 내부 ID는 사용할 수 없습니다.
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
}

Epic Links API (deprecated)

GitLab v19.5
Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

Epics REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. epic_links에 대한 모든 API 호출은 인증을 거쳐야 합니다. 비공개 그룹의 멤버가 아닌 사용자가 해당 그룹에 GET 요청을 보내면 404 상태 코드가 반환됩니다.

Warning

Epics REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. GitLab 17.4부터 18.0 까지는 에픽의 새 화면이 활성화된 경우, 그리고 GitLab 18.1 이상에서는 Work Items API를 대신 사용합니다. 자세한 내용은 에픽 API를 작업 항목으로 마이그레이션을 참고합니다. 이 변경은 브레이킹 체인지입니다.

부모-자식 에픽 관계를 관리합니다.

epic_links에 대한 모든 API 호출은 인증을 거쳐야 합니다.

비공개 그룹의 멤버가 아닌 사용자가 해당 그룹에 GET 요청을 보내면 404 상태 코드가 반환됩니다.

다단계 에픽은 GitLab Ultimate에서만 사용할 수 있습니다. 다단계 에픽 기능을 사용할 수 없으면 403 상태 코드가 반환됩니다.

에픽의 모든 자식 에픽 조회#

에픽의 모든 자식 에픽을 조회합니다.

GET /groups/:id/epics/:epic_iid/epics
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
  }
]

자식 에픽 할당#

두 에픽 사이에 연관을 만들어 하나를 부모 에픽으로, 다른 하나를 자식 에픽으로 지정합니다. 부모 에픽은 여러 자식 에픽을 가질 수 있습니다. 새 자식 에픽이 이미 다른 에픽에 속해 있었다면 이전 부모에서 할당이 해제됩니다.

POST /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
child_epic_id integer 예 자식 에픽의 전역 ID 입니다. 다른 그룹의 에픽과 충돌할 수 있어 내부 ID는 사용할 수 없습니다.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
}

자식 에픽 생성 및 할당#

새 에픽을 생성하고 지정한 부모 에픽에 연결합니다. 응답은 LinkedEpic 객체입니다.

POST /groups/:id/epics/:epic_iid/epics
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 부모가 될 에픽의 내부 ID 입니다.
title string 예 새로 생성할 에픽의 제목입니다.
confidential boolean 아니요 에픽을 비공개로 할지 여부입니다. confidential_epics 기능 플래그가 비활성화되어 있으면 이 파라미터는 무시됩니다. 기본값은 부모 에픽의 비공개 상태입니다.
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic"

응답 예시:

{
  "id": 24,
  "iid": 2,
  "title": "child 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"
}

자식 에픽 순서 변경#

PUT /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
child_epic_id integer 예 자식 에픽의 전역 ID 입니다. 다른 그룹의 에픽과 충돌할 수 있어 내부 ID는 사용할 수 없습니다.
move_before_id integer 아니요 자식 에픽보다 앞에 배치할 형제 에픽의 전역 ID 입니다.
move_after_id integer 아니요 자식 에픽보다 뒤에 배치할 형제 에픽의 전역 ID 입니다.
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
  }
]

자식 에픽 할당 해제#

부모 에픽에서 자식 에픽의 할당을 해제합니다.

DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id
속성 유형 필수 여부 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
epic_iid integer 예 에픽의 내부 ID 입니다.
child_epic_id integer 예 자식 에픽의 전역 ID 입니다. 다른 그룹의 에픽과 충돌할 수 있어 내부 ID는 사용할 수 없습니다.
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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": []
}