Epic Issues API

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

경고: 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
  }
]