# Epic Issues API

> 原文：[https://docs.gitlab.com/ee/api/epic_issues.html](https://docs.gitlab.com/ee/api/epic_issues.html)

*   [List issues for an epic](#list-issues-for-an-epic)
*   [Assign an issue to the epic](#assign-an-issue-to-the-epic)
*   [Remove an issue from the epic](#remove-an-issue-from-the-epic)
*   [Update epic - issue association](#update-epic---issue-association)

# Epic Issues API[](#epic-issues-api-premium "Permalink")

每个对 epic_issues 的 API 调用都必须经过验证.

如果用户不是组的成员，并且该组是私有的，则对该组的`GET`请求将产生`404`状态代码.

Epics 仅在 GitLab [Premium 和更高版本](https://about.gitlab.com/pricing/)中可用. 如果 Epics 功能不可用，将返回`403`状态代码.

## List issues for an epic[](#list-issues-for-an-epic "Permalink")

获取分配给史诗且经过身份验证的用户有权访问的所有问题.

```
GET /groups/:id/epics/:epic_iid/issues 
```

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer/string | yes | 认证用户拥有[的组](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) |
| `epic_iid` | integer/string | yes | 史诗的内部 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"  },  "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":  2  }  ] 
```

**注意** ：不建议使用`assignee`列，现在我们将其显示为符合 GitLab EE API 的单一大小的数组`assignees` .

## Assign an issue to the epic[](#assign-an-issue-to-the-epic "Permalink")

创建史诗-事件关联. 如果所讨论的问题属于另一个史诗，则不会从该史诗中分配该问题.

```
POST /groups/:id/epics/:epic_iid/issues/:issue_id 
```

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer/string | yes | 认证用户拥有[的组](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) |
| `epic_iid` | integer/string | yes | 史诗的内部 ID. |
| `issue_id` | integer/string | yes | 问题的 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.",  "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":  55,  "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` .

## Remove an issue from the epic[](#remove-an-issue-from-the-epic "Permalink")

删除史诗-问题关联.

```
DELETE /groups/:id/epics/:epic_iid/issues/:epic_issue_id 
```

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer/string | yes | 认证用户拥有[的组](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) |
| `epic_iid` | integer/string | yes | 史诗的内部 ID. |
| `epic_issue_id` | integer/string | yes | 问题的 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  }  }  } 
```

**Note**: `assignee` column is deprecated, now we show it as a single-sized array `assignees` to conform to the GitLab EE API.

## Update epic - issue association[](#update-epic---issue-association "Permalink")

更新史诗-问题关联.

```
PUT /groups/:id/epics/:epic_iid/issues/:epic_issue_id 
```

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer/string | yes | 认证用户拥有[的组](README.html#namespaced-path-encoding)的 ID 或[URL 编码路径](README.html#namespaced-path-encoding) |
| `epic_iid` | integer/string | yes | 史诗的内部 ID. |
| `epic_issue_id` | integer/string | yes | 问题的 ID-史诗般的协会. |
| `move_before_id` | integer/string | no | 问题的 ID-史诗般的关联，应放在问题中的链接之前. |
| `move_after_id` | integer/string | no | 问题的 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  }  ] 
```