이슈 API

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

GitLab Issues를 REST API를 사용하여 상호 작용합니다.

프라이빗 프로젝트의 멤버가 아닌 사용자가 해당 프로젝트에 대한 GET 요청하면 404 상태 코드가 반환됩니다.

이슈 페이지네이션

기본적으로 GET 요청은 API 결과가 페이지별로 표시되기 때문에 한 번에 20개의 결과를 반환합니다. 자세한 내용은 pagination을 확인하세요.

참고: references.relative 속성은 요청된 이슈의 그룹 또는 프로젝트에 대해 상대적입니다. 이슈가 해당 프로젝트에서 검색될 때 relative 형식은 short 형식과 동일합니다. 그룹 또는 프로젝트 전체에서 요청된 경우 full 형식이 short 형식과 동일하게 예상됩니다.

이슈 목록

인증된 사용자가 접근할 수 있는 모든 이슈를 가져옵니다. 기본적으로 현재 사용자가 생성한 이슈만 반환됩니다. 모든 이슈를 얻으려면 scope=all 매개변수를 사용하세요.

GET /issues
GET /issues?assignee_id=5
GET /issues?author_id=5
GET /issues?confidential=true
GET /issues?iids[]=42&iids[]=43
GET /issues?labels=foo
GET /issues?labels=foo,bar
GET /issues?labels=foo,bar&state=opened
GET /issues?milestone=1.0.0
GET /issues?milestone=1.0.0&state=opened
GET /issues?my_reaction_emoji=star
GET /issues?search=foo&in=title
GET /issues?state=closed
GET /issues?state=opened

지원되는 속성:

속성 타입 필수 여부 설명
assignee_id 정수 아니요 주어진 사용자 id에 할당된 이슈를 반환합니다. assignee_username과 상호 배타적입니다. None은 미할당된 이슈를 반환하고, Any는 담당자가 있는 이슈를 반환합니다.
assignee_username 문자열 배열 아니요 주어진 username에 할당된 이슈를 반환합니다. assignee_id와 유사하며 상호 배타적입니다. GitLab CE에서는 assignee_username 배열은 단일 값을 포함해야 합니다. 그렇지 않으면 잘못된 매개변수 오류가 반환됩니다.
author_id 정수 아니요 주어진 사용자 id가 작성한 이슈를 반환합니다. author_username과 상호 배타적입니다. scope=all 또는 scope=assigned_to_me과 결합하세요.
author_username 문자열 아니요 주어진 username이 작성한 이슈를 반환합니다. author_id와 유사하며 상호 배타적입니다.
confidential 부울 아니요 기밀 또는 공개 이슈를 필터링합니다.
created_after 날짜 및 시간 아니요 주어진 시간 이후에 작성된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 예상됩니다.
created_before 날짜 및 시간 아니요 주어진 시간 이전에 작성된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 예상됩니다.
due_date 문자열 아니요 마감일이 없거나 마감일이 지났거나 이번 주, 이번 달 또는 지난 이주부터 다음 달 사이에 있는 이슈를 반환합니다. 0 (마감일 없음), any, today, tomorrow, overdue, week, month, next_month_and_previous_two_weeks를 허용합니다.
epic_id 정수 아니요 주어진 에픽 ID와 관련된 이슈를 반환합니다. None은 에픽과 관련이 없는 이슈를 반환하고, Any는 에픽과 관련된 이슈를 반환합니다. 프리미엄 및 얼티밋 전용입니다.
health_status 문자열 아니요 지정된 health_status와 관련된 이슈를 반환합니다. (GitLab 15.4에 도입됨). GitLab 15.5 이상에서 None은 할당된 건강 상태가 없는 이슈를 반환하고, Any는 할당된 건강 상태가 있는 이슈를 반환합니다. 얼티밋 전용입니다.
iids[] 정수 배열 아니요 주어진 iid를 가진 이슈만 반환합니다.
in 문자열 아니요 search 속성의 범위를 수정합니다. title, description 또는 쉼표로 결합한 문자열. 기본값은 title,description입니다.
issue_type 문자열 아니요 특정 유형의 이슈로 필터링합니다. issue, incident, test_case 또는 task 중 하나.
iteration_id 정수 아니요 주어진 반복 ID에 할당된 이슈를 반환합니다. None은 반복에 속하지 않는 이슈를 반환하고, Any는 반복에 속한 이슈를 반환합니다. 상호 배타적입니다. 프리미엄 및 얼티밋 전용입니다.
iteration_title 문자열 아니요 주어진 제목의 반복에 할당된 이슈를 반환합니다. iteration_id와 유사하며 상호 배타적입니다. 프리미엄 및 얼티밋 전용입니다.
labels 문자열 아니요 레이블 이름의 쉼표로 구분된 목록입니다. 반환되려면 이슈에 모든 레이블이 있어야 합니다. None은 레이블이 없는 모든 이슈를 나열합니다. Any는 적어도 하나의 레이블이 있는 모든 이슈를 나열합니다. No+Label (사용되지 않음) 모든 레이블이 없는 모든 이슈를 나열합니다. 미리 정의된 이름은 대소문자를 구분하지 않습니다.
milestone_id 문자열 아니요 주어진 타임박스 값( None, Any, Upcoming, Started)에 할당된 마일스턴에 대한 이슈를 반환합니다. None은 마일스톤이 지정된 모든 이슈를 나열합니다. Any는 할당된 모든 이슈를 나열합니다. Upcoming은 미래에 마감되는 마일스톤에 할당된 모든 이슈를 나열합니다. Started는 열려 있는 시작된 마일스톤에 할당된 모든 이슈를 나열합니다. milestonemilestone_id는 서로 배타적입니다.
milestone 문자열 아니요 마일스톤 제목입니다. None은 마일스톤이 지정된 모든 이슈를 나열합니다. Any는 할당된 모든 이슈를 나열합니다. None 또는 Any앞으로 사용이 중단될 예정입니다. 대신 milestone_id 속성을 사용하세요. milestonemilestone_id는 서로 배타적입니다.
my_reaction_emoji 문자열 아니요 특정 emoji로 사용자가 반응한 이슈를 반환합니다. None은 반응을 받지 않은 이슈를 반환하고, Any는 적어도 하나의 반응을 받은 이슈를 반환합니다.
non_archived 부울 아니요 아카이브되지 않은 프로젝트에서만 이슈를 반환합니다. false이면 응답은 아카이브된 프로젝트와 아카이브되지 않은 프로젝트의 이슈를 모두 반환합니다. 기본값은 true입니다.
not 해시 아니요 제공된 매개변수와 일치하지 않는 이슈를 반환합니다. assignee_id, assignee_username, author_id, author_username, iids, iteration_id, iteration_title, labels, milestone, milestone_idweight을 받습니다.
order_by 문자열 아니요 created_at, due_date, label_priority, milestone_due, popularity, priority, relative_position, title, updated_at, 또는 weight 필드로 이슈를 정렬하여 반환합니다. 기본값은 created_at입니다.
scope 문자열 아니요 주어진 범위에 대한 이슈를 반환합니다: created_by_me, assigned_to_me 또는 all. 기본값은 created_by_me입니다.
search 문자열 아니요 titledescription에 대해 이슈를 검색합니다.
sort 문자열 아니요 asc 또는 desc 순으로 정렬된 이슈를 반환합니다. 기본값은 desc입니다.
state 문자열 아니요 all 이슈를 반환하거나 opened 또는 closed인 이슈만 반환합니다.
updated_after 날짜 및 시간 아니요 주어진 시간 이후에 업데이트된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 예상됩니다.
updated_before 날짜 및 시간 아니요 주어진 시간 이전에 업데이트된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 예상됩니다.
weight 정수 아니요 지정된 weight가 있는 이슈를 반환합니다. None은 가중치가 할당되지 않은 이슈를 반환하고, Any는 가중치가 할당된 이슈를 반환합니다. 프리미엄 및 얼티밋 전용입니다.
with_labels_details 부울 아니요 true인 경우 응답은 레이블 필드의 각 레이블에 대해 더 많은 세부 정보를 반환합니다: :name, :color, :description, :description_html, :text_color. 기본값은 false입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/issues"

예시 응답:

[
   {
      "state" : "opened",
      "description" : "Ratione dolores corrupti mollitia soluta quia.",
      "author" : {
         "state" : "active",
         "id" : 18,
         "web_url" : "https://gitlab.example.com/eileen.lowe",
         "name" : "Alexandra Bashirian",
         "avatar_url" : null,
         "username" : "eileen.lowe"
      },
     ...
   }
]

GitLab 프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 weight 속성이 포함됩니다:

[
   {
      "state" : "opened",
      "description" : "Ratione dolores corrupti mollitia soluta quia.",
      "weight": null,
      ...
   }
]

GitLab 프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 epic 속성이 포함됩니다:

{
   ...
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "My epic epic",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab 프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 iteration 속성이 포함됩니다:

{
   ...
   "iteration": {
      "id":90,
      "iid":4,
     ...
   }
   ...
}

GitLab 얼티밋 사용자가 생성한 이슈에는 health_status 속성이 포함됩니다:

[
   {
      "state" : "opened",
      "description" : "Ratione dolores corrupti mollitia soluta quia.",
      "health_status": "on_track",
      ...
   }
]

경고: assignee 열은 사용이 중지되었습니다. 이제 GitLab EE API와 일치하게 단일 크기의 배열 assignees로 표시됩니다.

경고: epic_iid 속성은 사용이 중지되었으며 삭제 예정입니다. epic 속성의 iid를 사용하세요.

그룹 이슈 목록

그룹의 이슈 목록을 가져옵니다.

그룹이 비공개인 경우, 권한 부여를 위해 자격 증명을 제공해야 합니다. 이를 위한 우선적인 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /groups/:id/issues
GET /groups/:id/issues?assignee_id=5
GET /groups/:id/issues?author_id=5
GET /groups/:id/issues?confidential=true
GET /groups/:id/issues?iids[]=42&iids[]=43
GET /groups/:id/issues?labels=foo
GET /groups/:id/issues?labels=foo,bar
GET /groups/:id/issues?labels=foo,bar&state=opened
GET /groups/:id/issues?milestone=1.0.0
GET /groups/:id/issues?milestone=1.0.0&state=opened
GET /groups/:id/issues?my_reaction_emoji=star
GET /groups/:id/issues?search=issue+title+or+description
GET /groups/:id/issues?state=closed
GET /groups/:id/issues?state=opened

지원되는 지정자:

Attribute Type Required Description
id integer/string Yes 그룹의 전역 ID 또는 URL 인코딩된 경로.
assignee_id integer No 주어진 사용자 id에 할당된 이슈를 반환합니다. assignee_username과 상호 배타적입니다. None은 미할당된 이슈를 반환하며, Any는 담당자가 지정된 이슈를 반환합니다.
assignee_username string array No 주어진 username에 할당된 이슈를 반환합니다. assignee_id와 상호 배타적입니다. GitLab CE에서 assignee_username 배열은 하나의 값만 포함해야 합니다. 그렇지 않으면 유효하지 않은 매개변수 오류가 반환됩니다.
author_id integer No 주어진 사용자 id가 생성한 이슈를 반환합니다. author_username과 상호 배타적입니다. scope=all이나 scope=assigned_to_me와 함께 사용합니다.
author_username string No 주어진 username이 생성한 이슈를 반환합니다. author_id와 상호 배타적입니다.
confidential boolean No 비밀 또는 공개 이슈를 필터링합니다.
created_after datetime No 주어진 시간 이후에 생성된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 기대됩니다.
created_before datetime No 주어진 시간 이전에 생성된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 기대됩니다.
due_date string No 마감일이 없거나 마감일이 지났거나 이번 주, 이번 달, 지난 2주부터 다음 달까지인 이슈를 반환합니다. 0 (마감일 없음), any, today, tomorrow, overdue, week, month, next_month_and_previous_two_weeks로 수락합니다.
epic_id integer No 주어진 에픽 ID와 관련된 이슈를 반환합니다. None은 에픽과 관련이 없는 이슈를 반환하며, Any는 에픽과 관련된 이슈를 반환합니다. 프리미엄 및 얼티밋 전용입니다.
iids[] integer array No 주어진 iid를 가진 이슈만 반환합니다.
issue_type string No 특정 유형의 이슈로 필터링합니다. issue, incident, test_case, task 중 하나입니다.
iteration_id integer No 주어진 반복 ID에 할당된 이슈를 반환합니다. None은 반복에 속하지 않은 이슈를 반환하며, Any는 반복에 속한 이슈를 반환합니다. 상호 배타적으로 iteration_title과 함께 사용됩니다. 프리미엄 및 얼티밋 전용입니다.
iteration_title string No 주어진 제목의 반복에 할당된 이슈를 반환합니다. iteration_id와 상호 배타적으로 사용되며, 프리미엄 및 얼티밋 전용입니다.
labels string No 라벨 이름의 쉼표로 구분된 목록입니다. 반환되는 이슈는 모든 라벨을 가져야 합니다. None은 라벨이 없는 모든 이슈를 나열하며, Any는 적어도 하나의 라벨을 가진 모든 이슈를 나열합니다. No+Label (사용되지 않음)은 라벨이 없는 모든 이슈를 나열합니다. 사전 정의된 이름은 대소문자를 구분하지 않습니다.
milestone string No 마일스톤 제목입니다. None은 마일스톤이 지정되지 않은 모든 이슈를 나열하며, Any는 지정된 마일스톤이 있는 모든 이슈를 나열합니다.
my_reaction_emoji string No 특정 emoji로 인증된 사용자가 반응한 이슈를 반환합니다. None은 반응을 받지 않은 이슈를 반환하며, Any는 적어도 하나의 반응을 받은 이슈를 반환합니다.
non_archived boolean No 아카이브되지 않은 프로젝트에서 이슈를 반환합니다. 기본값은 true입니다.
not Hash No 제공된 매개변수와 일치하지 않는 이슈를 반환합니다. labels, milestone, author_id, author_username, assignee_id, assignee_username, my_reaction_emoji, search, in을 수락합니다.
order_by string No created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight 필드로 정렬된 이슈를 반환합니다. 기본값은 created_at
scope string No 주어진 범위에 대한 이슈를 반환합니다: created_by_me, assigned_to_me 또는 all. 기본값은 all입니다.
search string No 그룹 이슈를 titledescription에 대해 검색합니다.
sort string No asc 또는 desc 순서로 정렬된 이슈를 반환합니다. 기본값은 desc입니다.
state string No 모든 이슈를 반환하거나 opened 또는 closed인 것만 반환합니다.
updated_after datetime No 주어진 시간 이후에 업데이트된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 기대됩니다.
updated_before datetime No 주어진 시간 이전에 업데이트된 이슈를 반환합니다. ISO 8601 형식(2019-03-15T08:00:00Z)으로 기대됩니다.
weight integer No 지정된 weight가 있는 이슈를 반환합니다. None은 가중치가 지정되지 않은 이슈를 반환하며, Any는 가중치가 지정된 이슈를 반환합니다. 프리미엄 및 얼티밋 전용입니다.
with_labels_details boolean No true인 경우 응답은 라벨 필드의 각 라벨에 대해 더 많은 세부 정보를 반환합니다: :name, :color, :description, :description_html, :text_color. 기본값은 false입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/4/issues"

예시 응답:

[
  {
    "project_id": 4,
    "milestone": {
      "due_date": null,
      "project_id": 4,
      "state": "closed",
      "description": "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.",
      "iid": 3,
      "id": 11,
      "title": "v3.0",
      "created_at": "2016-01-04T15:31:39.788Z",
      "updated_at": "2016-01-04T15:31:39.788Z"
    },
    "author": {
      "state": "active",
      "web_url": "https://gitlab.example.com/root",
      "avatar_url": null,
      "username": "root",
      "id": 1,
      "name": "Administrator"
    },
    "description": "Omnis vero earum sunt corporis dolor et placeat.",
    "state": "closed",
    "iid": 1,
    "assignees": [
      {
        "avatar_url": null,
        "web_url": "https://gitlab.example.com/lennie",
        "state": "active",
        "username": "lennie",
        "id": 9,
        "name": "Dr. Luella Kovacek"
      }
    ],
    "assignee": {
      "avatar_url": null,
      "web_url": "https://gitlab.example.com/lennie",
      "state": "active",
      "username": "lennie",
      "id": 9,
      "name": "Dr. Luella Kovacek"
    },
    "type": "ISSUE",
    "labels": ["foo", "bar"],
    "upvotes": 4,
    "downvotes": 0,
    "merge_requests_count": 0,
    "id": 41,
    "title": "Ut commodi ullam eos dolores perferendis nihil sunt.",
    "updated_at": "2016-01-04T15:31:46.176Z",
    "created_at": "2016-01-04T15:31:46.176Z",
    "closed_at": null,
    "closed_by": null,
    "user_notes_count": 1,
    "due_date": null,
    "imported": false,
    "imported_from": "none",
    "web_url": "http://gitlab.example.com/my-group/my-project/issues/1",
    "references": {
      "short": "#1",
      "relative": "my-project#1",
      "full": "my-group/my-project#1"
    },
    "time_stats": {
      "time_estimate": 0,
      "total_time_spent": 0,
      "human_time_estimate": null,
      "human_total_time_spent": null
    },
    "has_tasks": true,
    "task_status": "10 of 15 tasks completed",
    "confidential": false,
    "discussion_locked": false,
    "issue_type": "issue",
    "severity": "UNKNOWN",
    "_links": {
      "self": "http://gitlab.example.com/api/v4/projects/4/issues/41",
      "notes": "http://gitlab.example.com/api/v4/projects/4/issues/41/notes",
      "award_emoji": "http://gitlab.example.com/api/v4/projects/4/issues/41/award_emoji",
      "project": "http://gitlab.example.com/api/v4/projects/4",
      "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
    },
    "task_completion_status": {
      "count": 0,
      "completed_count": 0
    }
  }
]

GitLab 프리미엄 또는 얼티밋 사용자가 만든 이슈는 weight 속성을 포함합니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "weight": null,
      ...
   }
]

GitLab 프리미엄 또는 얼티밋 사용자가 만든 이슈는 epic 속성을 포함합니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //deprecated, use `epic` attribute의 `iid`를 사용합니다
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "My epic epic",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab 얼티밋 사용자가 만든 이슈는 health_status 속성을 포함합니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "at_risk",
      ...
   }
]

경고: assignee 열은 사용되지 않습니다. 이제 GitLab EE API에 준용하기 위해 단일 크기의 배열 assignees로 표시됩니다.

경고: epic_iid 속성은 API 버전 5에서 제거 예정되었습니다. 대신 epic 속성의 iid를 사용하십시오.

프로젝트 이슈 목록

프로젝트의 이슈 목록을 가져옵니다.

프로젝트가 비공개인 경우, 권한 부여를 위해 자격 증명을 제공해야 합니다. 이를 위한 우선적인 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /projects/:id/issues
GET /projects/:id/issues?assignee_id=5
GET /projects/:id/issues?author_id=5
GET /projects/:id/issues?confidential=true
GET /projects/:id/issues?iids[]=42&iids[]=43
GET /projects/:id/issues?labels=foo
GET /projects/:id/issues?labels=foo,bar
GET /projects/:id/issues?labels=foo,bar&state=opened
GET /projects/:id/issues?milestone=1.0.0
GET /projects/:id/issues?milestone=1.0.0&state=opened
GET /projects/:id/issues?my_reaction_emoji=star
GET /projects/:id/issues?search=issue+title+or+description
GET /projects/:id/issues?state=closed
GET /projects/:id/issues?state=opened

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 프로젝트의 글로벌 ID 또는 URL 인코딩된 경로.
assignee_id 정수 아니요 주어진 사용자 id에 할당된 이슈를 반환합니다. assignee_username과 상호 배타적입니다. None은 할당되지 않은 이슈를 반환합니다. Any는 담당자가 지정된 이슈를 반환합니다.
assignee_username 문자열 배열 아니요 주어진 username에 할당된 이슈를 반환합니다. assignee_id와 상호 배타적입니다. GitLab CE에서 assignee_username 배열은 하나의 값만 포함해야 합니다. 그렇지 않으면 잘못된 매개변수 오류가 반환됩니다.
author_id 정수 아니요 주어진 사용자 id가 만든 이슈를 반환합니다. scope=all 또는 scope=assigned_to_me과 함께 사용합니다.
author_username 문자열 아니요 주어진 username이 만든 이슈를 반환합니다. author_id와 상호 배타적입니다.
confidential 부울 아니요 비밀 또는 공개 이슈를 필터링합니다.
created_after 날짜 및 시간 아니요 주어진 시간 이후에 생성된 이슈를 반환합니다. ISO 8601 형식으로 입력합니다(2019-03-15T08:00:00Z).
created_before 날짜 및 시간 아니요 주어진 시간 이전에 생성된 이슈를 반환합니다. ISO 8601 형식으로 입력합니다(2019-03-15T08:00:00Z).
due_date 문자열 아니요 마감일이 없거나 초과된 이슈 또는 이번 주, 이번 달, 지난 이주와 다음 달 사이의 마감일을 갖고 있는 이슈를 반환합니다. 0 (마감일 없음), any, today, tomorrow, overdue, week, month, next_month_and_previous_two_weeks를 허용합니다.
epic_id 정수 아니요 주어진 에픽 ID와 관련된 이슈를 반환합니다. None은 에픽과 관련이 없는 이슈를 반환합니다. Any은 에픽과 관련된 이슈를 반환합니다. 프리미엄 및 얼티밋 전용입니다.
iids[] 정수 배열 아니요 주어진 iid를 가진 이슈만 반환합니다.
issue_type 문자열 아니요 주어진 유형의 이슈로 필터링합니다. issue, incident, test_case 또는 task 중 하나입니다.
iteration_id 정수 아니요 주어진 반복 ID에 할당된 이슈를 반환합니다. None은 반복에 속하지 않은 이슈를 반환합니다. Any은 반복에 속한 이슈를 반환합니다. 상호 배타적인 iteration_title와 함께 사용합니다. 프리미엄 및 얼티밋 전용입니다.
iteration_title 문자열 아니요 주어진 제목의 반복에 할당된 이슈를 반환합니다. iteration_id와 상호 배타적입니다. 프리미엄 및 얼티밋 전용입니다.
labels 문자열 아니요 라벨 이름의 쉼표로 구분된 목록입니다. 이슈는 모든 라벨을 가져야 합니다. None은 라벨이 없는 모든 이슈를 나열합니다. Any는 하나 이상의 라벨이 있는 모든 이슈를 나열합니다. No+Label (폐기됨)은 라벨이 없는 모든 이슈를 나열합니다. 사전에 정의된 이름은 대소문자를 구분하지 않습니다.
milestone 문자열 아니요 마일스톤 제목입니다. None은 마일스톤이 지정되지 않은 모든 이슈를 나열합니다. Any는 할당된 마일스톤이 있는 모든 이슈를 나열합니다.
my_reaction_emoji 문자열 아니요 주어진 emoji로 인증된 사용자가 반응한 이슈를 반환합니다. None은 반응이 없는 이슈를 반환합니다. Any는 적어도 한 번의 반응이 있는 이슈를 반환합니다.
not 해시 아니요 제공된 매개변수와 일치하지 않는 이슈를 반환합니다. labels, milestone, author_id, author_username, assignee_id, assignee_username, my_reaction_emoji, ine, search을 허용합니다.
order_by 문자열 아니요 이슈의 순서를 created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight 필드로 반환합니다. 기본값은 created_at입니다.
scope 문자열 아니요 주어진 범위의 이슈를 반환합니다: created_by_me, assigned_to_me 또는 all. 기본값은 all입니다.
search 문자열 아니요 이슈의 titledescription에 대한 프로젝트 검색입니다.
sort 문자열 아니요 asc 또는 desc 순서대로 정렬된 이슈를 반환합니다. 기본값은 desc입니다.
state 문자열 아니요 모든 이슈 또는 opened 또는 closed 중에서 그냥 그 이슈를 반환합니다.
updated_after 날짜 및 시간 아니요 주어진 시간 이후에 업데이트된 이슈를 반환합니다. ISO 8601 형식으로 입력합니다(2019-03-15T08:00:00Z).
updated_before 날짜 및 시간 아니요 주어진 시간 이전에 업데이트된 이슈를 반환합니다. ISO 8601 형식으로 입력합니다(2019-03-15T08:00:00Z).
weight 정수 아니요 지정된 weight가 있는 이슈를 반환합니다. None은 가중치가 지정되지 않은 이슈를 반환합니다. Any은 가중치가 지정된 이슈를 반환합니다. 프리미엄 및 얼티밋 전용입니다.
with_labels_details 부울 아니요 true인 경우 응답은 라벨 필드의 각 라벨에 대해 더 많은 세부 정보를 반환합니다: :name, :color, :description, :description_html, :text_color. 기본값은 false입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/issues"

예시 응답:

[
   {
      "project_id" : 4,
      "milestone" : {
         "due_date" : null,
         "project_id" : 4,
         "state" : "closed",
         "description" : "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.",
         "iid" : 3,
         "id" : 11,
         "title" : "v3.0",
         "created_at" : "2016-01-04T15:31:39.788Z",
         "updated_at" : "2016-01-04T15:31:39.788Z"
      },
      ...
   }
]

GitLab 프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 weight 속성이 포함됩니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "weight": null,
      ...
   }
]

GitLab 프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //deprecated, use `iid` of the `epic` attribute
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "My epic epic",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab 얼티밋 사용자가 생성한 이슈에는 health_status 속성이 포함됩니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "at_risk",
      ...
   }
]

경고: assignee 열은 사용되지 않습니다. 이제 GitLab EE API에 맞추기 위해 단일 크기의 배열 assignees로 표시됩니다.

경고: epic_iid 속성은 API 버전 5에서 폐기되었으며 제거 예정입니다. epic 속성의 iid를 사용하세요.

단일 이슈

관리자 전용입니다.

하나의 이슈를 가져옵니다.

이 작업을 하는 선호하는 방법은 개인 엑세스 토큰을 사용하는 것입니다.

GET /issues/:id

지원되는 속성:

속성 유형 필수 여부 설명
id 정수 이슈의 ID입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/issues/41"

예시 응답:

{
  "id": 1,
  "milestone": {
    "due_date": null,
    "project_id": 4,
    "state": "closed",
    "description": "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.",
    "iid": 3,
    "id": 11,
    "title": "v3.0",
    "created_at": "2016-01-04T15:31:39.788Z",
    "updated_at": "2016-01-04T15:31:39.788Z",
    "closed_at": "2016-01-05T15:31:46.176Z"
  },
  "author": {
    "state": "active",
    "web_url": "https://gitlab.example.com/root",
    "avatar_url": null,
    "username": "root",
    "id": 1,
    "name": "Administrator"
  },
  "description": "Omnis vero earum sunt corporis dolor et placeat.",
  "state": "closed",
  "iid": 1,
  "assignees": [
    {
      "avatar_url": null,
      "web_url": "https://gitlab.example.com/lennie",
      "state": "active",
      "username": "lennie",
      "id": 9,
      "name": "Dr. Luella Kovacek"
    }
  ],
  "assignee": {
    "avatar_url": null,
    "web_url": "https://gitlab.example.com/lennie",
    "state": "active",
    "username": "lennie",
    "id": 9,
    "name": "Dr. Luella Kovacek"
  },
  "type": "ISSUE",
  "labels": [],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "title": "Ut commodi ullam eos dolores perferendis nihil sunt.",
  "updated_at": "2016-01-04T15:31:46.176Z",
  "created_at": "2016-01-04T15:31:46.176Z",
  "closed_at": null,
  "closed_by": null,
  "subscribed": false,
  "user_notes_count": 1,
  "due_date": null,
  "imported": false,
  "imported_from": "none",
  "web_url": "http://example.com/my-group/my-project/issues/1",
  "references": {
    "short": "#1",
    "relative": "#1",
    "full": "my-group/my-project#1"
  },
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  },
  "weight": null,
  "has_tasks": false,
  "_links": {
    "self": "http://gitlab.example:3000/api/v4/projects/1/issues/1",
    "notes": "http://gitlab.example:3000/api/v4/projects/1/issues/1/notes",
    "award_emoji": "http://gitlab.example:3000/api/v4/projects/1/issues/1/award_emoji",
    "project": "http://gitlab.example:3000/api/v4/projects/1",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "moved_to_id": null,
  "service_desk_reply_to": "service.desk@gitlab.com"
}

GitLab Premium 또는 Ultimate 사용자가 만든 이슈에는 weight 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "weight": null,
   ...
}

GitLab Premium 또는 Ultimate 사용자가 만든 이슈에는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic": {
   "epic_iid" : 5, //deprecated, `epic` 속성의 `iid`를 사용하세요
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "My epic epic",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab Ultimate 사용자는 health_status 속성도 볼 수 있습니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "on_track",
      ...
   }
]

경고: assignee 열은 사용이 중지되었습니다. 이제 우리는 GitLab EE API에 맞춰 크기가 1인 배열 assignees로 표시합니다.

경고: epic_iid 속성은 사용이 중지되었으며 삭제 예정입니다. epic 속성의 iid를 사용해주세요.

단일 프로젝트 이슈

단일 프로젝트 이슈를 가져옵니다.

프로젝트가 비공개이거나 이슈가 비밀이라면 인증을 제공해야 합니다. 이를 위한 선호되는 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /projects/:id/issues/:issue_iid

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 글로벌 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/issues/41"

예시 응답:

{
  "project_id": 4,
  "milestone": {
    "due_date": null,
    "project_id": 4,
    "state": "closed",
    "description": "Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.",
    "iid": 3,
    "id": 11,
    "title": "v3.0",
    "created_at": "2016-01-04T15:31:39.788Z",
    "updated_at": "2016-01-04T15:31:39.788Z",
    "closed_at": "2016-01-05T15:31:46.176Z"
  },
  "author": {
    "state": "active",
    "web_url": "https://gitlab.example.com/root",
    "avatar_url": null,
    "username": "root",
    "id": 1,
    "name": "Administrator"
  },
  "description": "Omnis vero earum sunt corporis dolor et placeat.",
  "state": "closed",
  "iid": 1,
  "assignees": [
    {
      "avatar_url": null,
      "web_url": "https://gitlab.example.com/lennie",
      "state": "active",
      "username": "lennie",
      "id": 9,
      "name": "Dr. Luella Kovacek"
    }
  ],
  "assignee": {
    "avatar_url": null,
    "web_url": "https://gitlab.example.com/lennie",
    "state": "active",
    "username": "lennie",
    "id": 9,
    "name": "Dr. Luella Kovacek"
  },
  "type": "ISSUE",
  "labels": [],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "id": 41,
  "title": "Ut commodi ullam eos dolores perferendis nihil sunt.",
  "updated_at": "2016-01-04T15:31:46.176Z",
  "created_at": "2016-01-04T15:31:46.176Z",
  "closed_at": null,
  "closed_by": null,
  "subscribed": false,
  "user_notes_count": 1,
  "due_date": null,
  "imported": false,
  "imported_from": "none",
  "web_url": "http://gitlab.example.com/my-group/my-project/issues/1",
  "references": {
    "short": "#1",
    "relative": "#1",
    "full": "my-group/my-project#1"
  },
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "_links": {
    "self": "http://gitlab.example.com/api/v4/projects/1/issues/2",
    "notes": "http://gitlab.example.com/api/v4/projects/1/issues/2/notes",
    "award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/2/award_emoji",
    "project": "http://gitlab.example.com/api/v4/projects/1",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  }
}

GitLab Premium 또는 Ultimate의 사용자가 생성한 이슈에는 weight 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "weight": null,
   ...
}

GitLab Premium 또는 Ultimate의 사용자가 생성한 이슈에는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //deprecated, use `iid` of the `epic` attribute
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "내 에픽 에픽",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab Ultimate 사용자는 health_status 속성을 볼 수도 있습니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "on_track",
      ...
   }
]

경고: assignee 열이 사용되지 않습니다. 이제 GitLab EE API에 준수하도록 단일 크기의 배열 assignees로 표시합니다.

경고: epic_iid 속성은 API 버전 5에서 제거 예정되었습니다. 대신 epic 속성의 iid를 사용하세요.

새 이슈

새 프로젝트 이슈를 생성합니다.

POST /projects/:id/issues

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 글로벌 ID 또는 URL-encoded path
assignee_id 정수 아니오 이슈를 할당할 사용자의 ID입니다. GitLab Free에만 표시됩니다.
assignee_ids 정수 배열 아니오 이슈를 할당할 사용자들의 ID입니다. Premium 및 Ultimate 전용.
confidential 부울 아니오 이슈를 비밀로 지정합니다. 기본값은 false입니다.
created_at 문자열 아니오 이슈가 생성된 시간입니다. 날짜 및 시간 문자열, ISO 8601 형식으로, 예를 들어 2016-03-11T03:45:40Z. 관리자 또는 프로젝트/그룹 소유자 권한 필요.
description 문자열 아니오 이슈의 설명입니다. 1,048,576자로 제한됩니다.
discussion_to_resolve 문자열 아니오 해결할 토론의 ID입니다. 이는 이슈에 기본 설명을 작성하고 토론을 해결로 표시합니다. merge_request_to_resolve_discussions_of와 함께 사용합니다.
due_date 문자열 아니오 마감일입니다. YYYY-MM-DD 형식의 날짜 및 시간 문자열, 예를 들어 2016-03-11.
epic_id 정수 아니오 이슈를 추가할 에픽의 ID입니다. 유효한 값은 0 이상입니다. Premium 및 Ultimate 전용.
epic_iid 정수 아니오 이슈를 추가할 에픽의 IID입니다. 유효한 값은 0 이상입니다. (해당사항 없음, API 버전 5에서 제거 예정). Premium 및 Ultimate 전용.
iid 정수/문자열 아니오 프로젝트의 이슈의 내부 ID입니다 (관리자 또는 프로젝트 소유자 권한 필요).
issue_type 문자열 아니오 이슈의 유형입니다. issue, incident, test_case, task 중 하나입니다. 기본값은 issue입니다.
labels 문자열 아니오 새로운 이슈에 할당할 쉼표로 구분된 라벨 이름입니다. 라벨이 이미 존재하지 않는 경우, 새로운 프로젝트 라벨을 만들고 이를 이슈에 할당합니다.
merge_request_to_resolve_discussions_of 정수 아니오 이슈를 모두 해결할 머지 리퀘스트의 IID입니다. 이는 이슈에 기본 설명을 작성하고 모든 토론을 해결로 표시합니다. 설명 또는 제목을 전달할 때 이 값은 기본값보다 우선합니다.
milestone_id 정수 아니오 이슈를 할당할 마일스톤의 글로벌 ID입니다. 마일스톤과 연관된 milestone_id를 찾으려면, 마일스톤이 할당된 이슈를 보고 API를 사용하여 이슈의 세부 정보를 검색하십시오.
title 문자열 이슈의 제목입니다.
weight 정수 아니오 이슈의 가중치입니다. 유효한 값은 0 이상입니다. Premium 및 Ultimate 전용.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/issues?title=Issues%20with%20auth&labels=bug"

예시 응답:

{
  "project_id": 4,
  "id": 84,
  "created_at": "2016-01-07T12:44:33.959Z",
  "iid": 14,
  "title": "Issues with auth",
  "state": "opened",
  "assignees": [],
  "assignee": null,
  "type": "ISSUE",
  "labels": ["bug"],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "author": {
    "name": "Alexandra Bashirian",
    "avatar_url": null,
    "state": "active",
    "web_url": "https://gitlab.example.com/eileen.lowe",
    "id": 18,
    "username": "eileen.lowe"
  },
  "description": null,
  "updated_at": "2016-01-07T12:44:33.959Z",
  "closed_at": null,
  "closed_by": null,
  "milestone": null,
  "subscribed": true,
  "user_notes_count": 0,
  "due_date": null,
  "web_url": "http://gitlab.example.com/my-group/my-project/issues/14",
  "references": {
    "short": "#14",
    "relative": "#14",
    "full": "my-group/my-project#14"
  },
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "_links": {
    "self": "http://gitlab.example.com/api/v4/projects/1/issues/2",
    "notes": "http://gitlab.example.com/api/v4/projects/1/issues/2/notes",
    "award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/2/award_emoji",
    "project": "http://gitlab.example.com/api/v4/projects/1",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  }
}

GitLab Premium 또는 Ultimate 사용자가 생성한 이슈에는 weight 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : null,
   "weight": null,
   ...
}

GitLab Premium 또는 Ultimate 사용자가 생성한 이슈에는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //deprecated, `epic` 속성의 `iid`를 사용하세요
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "My epic epic",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab Ultimate 사용자가 생성한 이슈에는 health_status 속성이 포함됩니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "on_track",
      ...
   }
]

경고: assignee 열은 사용되지 않습니다. 이제 GitLab EE API에 맞추기 위해 단일 크기의 배열 assignees로 표시합니다.

경고: epic_iid 속성은 사용되지 않으며 API 버전 5에서 제거 예정입니다. 대신 epic 속성의 iid를 사용하세요.

요유 제한

악용을 방지하기 위해 사용자는 분당 특정 개수의 Create 요청으로 제한될 수 있습니다. 이슈 속도 제한을 참조하세요.

이슈 수정

기존 프로젝트 이슈를 업데이트합니다. 이 요청은 또한 이슈를 닫거나 다시 열 때 state_event와 함께 사용됩니다.

요청이 성공하려면 다음 매개변수 중 하나 이상이 필요합니다.

  • :assignee_id
  • :assignee_ids
  • :confidential
  • :created_at
  • :description
  • :discussion_locked
  • :due_date
  • :issue_type
  • :labels
  • :milestone_id
  • :state_event
  • :title
PUT /projects/:id/issues/:issue_iid

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 프로젝트의 글로벌 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.
add_labels 문자열 아니오 이슈에 추가할 쉼표로 구분된 라벨 이름. 라벨이 이미 존재하지 않으면 새 프로젝트 라벨이 생성되어 이를 이슈에 지정합니다.
assignee_ids 정수 배열 아니오 이 문제를 할당할 사용자의 ID. 모든 할당 사용자를 할당 해제하려면 0으로 설정하거나 빈 값을 제공하세요.
confidential 부울 아니오 이슈를 비공개로 업데이트합니다.
description 문자열 아니오 이슈의 설명입니다. 1,048,576자로 제한됩니다.
discussion_locked 부울 아니오 이슈의 토의가 잠겨 있는지를 나타내는 플래그입니다. 토론이 잠기면 프로젝트 멤버만 주석을 추가하거나 편집할 수 있습니다.
due_date 문자열 아니오 마감일입니다. YYYY-MM-DD 형식의 날짜 및 시간 문자열입니다. 예: 2016-03-11.
epic_id 정수 아니오 이슈를 추가 할 에픽의 ID입니다. 유효한 값은 0 이상입니다. 프리미엄 및 얼티밋 전용.
epic_iid 정수 아니오 이슈를 추가 할 에픽의 IID입니다. 유효한 값은 0 이상입니다. (사용 중지됨, 삭제 예정 API 버전 5에서). 프리미엄 및 얼티밋 전용.
issue_type 문자열 아니오 이슈의 유형을 업데이트합니다. issue, incident, test_case 또는 task 중 하나입니다.
labels 문자열 아니오 이슈의 라벨 이름 목록을 쉼표로 구분합니다. 모든 라벨을 해제하려면 빈 문자열로 설정하세요. 라벨이 이미 존재하지 않으면 새 프로젝트 라벨이 생성되어 이를 이슈에 지정합니다.
milestone_id 정수 아니오 이 문제를 할당 할 마일스톤의 글로벌 ID입니다. 마일스톤을 할당 해제하려면 0 또는 빈 값을 제공하세요.
remove_labels 문자열 아니오 이슈에서 제거할 라벨 이름 목록을 쉼표로 구분합니다.
state_event 문자열 아니오 이슈의 상태 이벤트. 이슈를 닫으려면 close를 사용하고 다시 열려면 reopen을 사용하세요.
title 문자열 아니오 이슈의 제목입니다.
updated_at 문자열 아니오 이슈가 업데이트된 시간입니다. ISO 8601 형식이 선택된 날짜 시간 문자열입니다. 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트 소유자 권한이 필요합니다). 빈 문자열 또는 null 값을 허용하지 않습니다.
weight 정수 아니오 이슈의 가중치입니다. 유효한 값은 0 이상입니다. 프리미엄 및 얼티밋 전용.

예시 요청:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close"

예시 응답:

{
  "created_at": "2016-01-07T12:46:01.410Z",
  "author": {
    "name": "Alexandra Bashirian",
    "avatar_url": null,
    "username": "eileen.lowe",
    "id": 18,
    "state": "active",
    "web_url": "https://gitlab.example.com/eileen.lowe"
  },
  "state": "closed",
  "title": "인증 문제",
  "project_id": 4,
  "description": null,
  "updated_at": "2016-01-07T12:55:16.213Z",
  "closed_at": "2016-01-08T12:55:16.213Z",
  "closed_by": {
    "state": "active",
    "web_url": "https://gitlab.example.com/root",
    "avatar_url": null,
    "username": "root",
    "id": 1,
    "name": "Administrator"
  },
  "iid": 15,
  "labels": ["버그"],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "id": 85,
  "assignees": [],
  "assignee": null,
  "milestone": null,
  "subscribed": true,
  "user_notes_count": 0,
  "due_date": "2016-07-22",
  "web_url": "http://gitlab.example.com/my-group/my-project/issues/15",
  "references": {
    "short": "#15",
    "relative": "#15",
    "full": "my-group/my-project#15"
  },
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "_links": {
    "self": "http://gitlab.example.com/api/v4/projects/1/issues/2",
    "notes": "http://gitlab.example.com/api/v4/projects/1/issues/2/notes",
    "award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/2/award_emoji",
    "project": "http://gitlab.example.com/api/v4/projects/1",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  }
}

GitLab 프리미엄 또는 얼티밋에서 사용자가 생성한 이슈에는 weight 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : null,
   "weight": null,
   ...
}

GitLab 프리미엄 또는 얼티밋에서 사용자가 생성한 이슈에는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //사용 중지됨, `epic` 속성의 `iid`를 사용하세요.
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "내 명작 에픽",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab 얼티밋에서 사용자가 생성한 이슈에는 health_status 속성이 포함됩니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "on_track",
      ...
   }
]

경고: epic_iid 속성은 사용 중지되어 있으며 삭제 예정입니다. API 버전 5에서 epic 속성의 iid를 사용하세요.

경고: assignee 열은 사용 중지되었습니다. 이제 GitLab EE API에 준수하기 위해 단일 크기의 배열 assignees로 표시합니다.

이슈 삭제

관리자 및 프로젝트 소유자 전용입니다.

이슈를 삭제합니다.

DELETE /projects/:id/issues/:issue_iid

지원되는 속성:

속성 유형 필수 여부 설명
id integer/string Yes 프로젝트의 글로벌 ID 또는 URL 인코딩 된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID입니다.

예시 요청:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/issues/85"

성공 시 204 No Content을 반환합니다.

이슈 재정렬

이슈를 재정렬합니다. 이슈를 수동으로 정렬할 때 결과를 확인할 수 있습니다.

PUT /projects/:id/issues/:issue_iid/reorder

지원되는 속성:

속성 유형 필수 여부 설명
id integer/string Yes 프로젝트의 글로벌 ID 또는 URL 인코딩 된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID입니다.
move_after_id integer No 이 문제 뒤에 배치해야하는 프로젝트의 이슈의 글로벌 ID입니다.
move_before_id integer No 이 문제 앞에 배치해야하는 프로젝트의 이슈의 글로벌 ID입니다.

예시 요청:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/4/issues/85/reorder?move_after_id=51&move_before_id=92"

이슈 이동

이슈를 다른 프로젝트로 이동시킵니다. 대상 프로젝트가 소스 프로젝트이거나 사용자의 권한이 충분하지 않은 경우 400 상태 코드와 함께 오류 메시지가 반환됩니다.

대상 프로젝트에 동일한 이름의 레이블 또는 마일스톤이 이미 있는 경우, 그것은 이동되는 이슈에 할당됩니다.

POST /projects/:id/issues/:issue_iid/move

지원되는 속성:

속성 유형 필수 여부 설명
id integer/string Yes 프로젝트의 글로벌 ID 또는 URL 인코딩 된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID입니다.
to_project_id integer Yes 새 프로젝트의 ID입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --form to_project_id=5 \
  --url "https://gitlab.example.com/api/v4/projects/4/issues/85/move"

예시 응답:

{
  "id": 92,
  "iid": 11,
  "project_id": 5,
  "title": "Sit voluptas tempora quisquam aut doloribus et.",
  "description": "Repellat voluptas quibusdam voluptatem exercitationem.",
  "state": "opened",
  "created_at": "2016-04-05T21:41:45.652Z",
  "updated_at": "2016-04-07T12:20:17.596Z",
  "closed_at": null,
  "closed_by": null,
  "labels": [],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "milestone": null,
  "assignees": [
    {
      "name": "Miss Monserrate Beier",
      "username": "axel.block",
      "id": 12,
      "state": "active",
      "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon",
      "web_url": "https://gitlab.example.com/axel.block"
    }
  ],
  "assignee": {
    "name": "Miss Monserrate Beier",
    "username": "axel.block",
    "id": 12,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/axel.block"
  },
  "type": "ISSUE",
  "author": {
    "name": "Kris Steuber",
    "username": "solon.cremin",
    "id": 10,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/7a190fecbaa68212a4b68aeb6e3acd10?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/solon.cremin"
  },
  "due_date": null,
  "imported": false,
  "imported_from": "none",
  "web_url": "http://gitlab.example.com/my-group/my-project/issues/11",
  "references": {
    "short": "#11",
    "relative": "#11",
    "full": "my-group/my-project#11"
  },
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "_links": {
    "self": "http://gitlab.example.com/api/v4/projects/1/issues/2",
    "notes": "http://gitlab.example.com/api/v4/projects/1/issues/2/notes",
    "award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/2/award_emoji",
    "project": "http://gitlab.example.com/api/v4/projects/1",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  }
}

GitLab 프리미엄 또는 얼티밋에서 생성된 이슈에는 weight 속성이 포함됩니다:

{
  "project_id": 5,
  "description": "Repellat voluptas quibusdam voluptatem exercitationem.",
  "weight": null,
  ...
}

GitLab 프리미엄 또는 얼티밋에서 생성된 이슈에는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //deprecated, use `iid` of the `epic` attribute
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "My epic epic",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab 얼티밋에서 생성된 이슈에는 health_status 속성이 포함됩니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "on_track",
      ...
   }
]

경고: assignee 열은 사용되지 않습니다. GitLab EE API를 준수하도록 이를 단일 크기의 배열 assignees로 표시합니다.

경고: epic_iid 속성은 버전 5에서 제거 예정되었습니다. 대신 epic 속성의 iid를 사용하십시오.

이슈 복제하기

지정된 프로젝트로 이슈를 복제합니다. 대상 프로젝트에 레이블 또는 마일스톤과 같은 동등한 기준이 포함되어 있는 한 데이터를 최대한 복사합니다.

권한이 부족한 경우, 상태 코드 400을 포함한 에러 메시지가 반환됩니다.

POST /projects/:id/issues/:issue_iid/clone

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 ID 또는 URL 인코딩된 경로
issue_iid 정수 프로젝트의 내부 ID
to_project_id 정수 새 프로젝트의 ID
with_notes 부울 아니요 이슈를 노트와 함께 복제합니다. 기본값은 false입니다.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/1/clone?with_notes=true&to_project_id=6"

예시 응답:

{
  "id": 290,
  "iid": 1,
  "project_id": 143,
  "title": "foo",
  "description": "closed",
  "state": "opened",
  "created_at": "2021-09-14T22:24:11.696Z",
  "updated_at": "2021-09-14T22:24:11.696Z",
  "closed_at": null,
  "closed_by": null,
  "labels": [],
  "milestone": null,
  "assignees": [
    {
      "id": 179,
      "name": "John Doe2",
      "username": "john",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/10fc7f102be8de7657fb4d80898bbfe3?s=80\u0026d=identicon",
      "web_url": "https://gitlab.example.com/john"
    }
  ],
  "author": {
    "id": 179,
    "name": "John Doe2",
    "username": "john",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/10fc7f102be8de7657fb4d80898bbfe3?s=80\u0026d=identicon",
    "web_url": "https://gitlab.example.com/john"
  },
  "type": "ISSUE",
  "assignee": {
    "id": 179,
    "name": "John Doe2",
    "username": "john",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/10fc7f102be8de7657fb4d80898bbfe3?s=80\u0026d=identicon",
    "web_url": "https://gitlab.example.com/john"
  },
  "user_notes_count": 1,
  "merge_requests_count": 0,
  "upvotes": 0,
  "downvotes": 0,
  "due_date": null,
  "imported": false,
  "imported_from": "none",
  "confidential": false,
  "discussion_locked": null,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "web_url": "https://gitlab.example.com/namespace1/project2/-/issues/1",
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  },
  "blocking_issues_count": 0,
  "has_tasks": false,
  "_links": {
    "self": "https://gitlab.example.com/api/v4/projects/143/issues/1",
    "notes": "https://gitlab.example.com/api/v4/projects/143/issues/1/notes",
    "award_emoji": "https://gitlab.example.com/api/v4/projects/143/issues/1/award_emoji",
    "project": "https://gitlab.example.com/api/v4/projects/143",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "references": {
    "short": "#1",
    "relative": "#1",
    "full": "namespace1/project2#1"
  },
  "subscribed": true,
  "moved_to_id": null,
  "service_desk_reply_to": null
}

알림

다음 요청은 이슈에 대한 이메일 알림과 관련이 있습니다.

이슈 구독

인증된 사용자를 이슈에 구독하여 알림을 받도록 설정합니다. 이미 사용자가 해당 이슈에 구독한 경우, 상태 코드 304가 반환됩니다.

POST /projects/:id/issues/:issue_iid/subscribe

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로
issue_iid 정수 프로젝트의 내부 ID

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/subscribe"

예시 응답:

{
  "id": 92,
  "iid": 11,
  "project_id": 5,
  "title": "Sit voluptas tempora quisquam aut doloribus et.",
  "description": "Repellat voluptas quibusdam voluptatem exercitationem.",
  "state": "opened",
  "created_at": "2016-04-05T21:41:45.652Z",
  "updated_at": "2016-04-07T12:20:17.596Z",
  "closed_at": null,
  "closed_by": null,
  "labels": [],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "milestone": null,
  "assignees": [
    {
      "name": "Miss Monserrate Beier",
      "username": "axel.block",
      "id": 12,
      "state": "active",
      "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon",
      "web_url": "https://gitlab.example.com/axel.block"
    }
  ],
  "assignee": {
    "name": "Miss Monserrate Beier",
    "username": "axel.block",
    "id": 12,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/axel.block"
  },
  "type": "ISSUE",
  "author": {
    "name": "Kris Steuber",
    "username": "solon.cremin",
    "id": 10,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/7a190fecbaa68212a4b68aeb6e3acd10?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/solon.cremin"
  },
  "due_date": null,
  "web_url": "http://gitlab.example.com/my-group/my-project/issues/11",
  "references": {
    "short": "#11",
    "relative": "#11",
    "full": "my-group/my-project#11"
  },
  "time_stats": {
    "time_estimate": 0,
    "total_time_spent": 0,
    "human_time_estimate": null,
    "human_total_time_spent": null
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "_links": {
    "self": "http://gitlab.example.com/api/v4/projects/1/issues/2",
    "notes": "http://gitlab.example.com/api/v4/projects/1/issues/2/notes",
    "award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/2/award_emoji",
    "project": "http://gitlab.example.com/api/v4/projects/1",
    "closed_as_duplicate_of": "http://gitlab.example.com/api/v4/projects/1/issues/75"
  },
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  }
}

GitLab Premium 또는 Ultimate에서 생성한 이슈는 weight 속성이 포함됩니다:

{
  "project_id": 5,
  "description": "Repellat voluptas quibusdam voluptatem exercitationem.",
  "weight": null,
  ...
}

GitLab Premium 또는 Ultimate에서 생성한 이슈는 epic 속성이 포함됩니다:

{
   "project_id" : 4,
   "description" : "Omnis vero earum sunt corporis dolor et placeat.",
   "epic_iid" : 5, //deprecated, use `epic` 속성의 `iid`를 사용합니다
   "epic": {
     "id" : 42,
     "iid" : 5,
     "title": "내 멋진 에픽",
     "url" : "/groups/h5bp/-/epics/5",
     "group_id": 8
   },
   ...
}

GitLab Ultimate에서 생성한 이슈는 health_status 속성이 포함됩니다:

[
   {
      "project_id" : 4,
      "description" : "Omnis vero earum sunt corporis dolor et placeat.",
      "health_status": "on_track",
      ...
   }
]

경고: assignee 열은 폐기되었습니다. 이제 GitLab EE API와 일치하도록 단일 크기의 배열 assignees로 표시됩니다.

경고: epic_iid 속성은 API 버전 5에서 제거 예정되었습니다. 대신 epic 속성의 iid를 사용하십시오.

이슈 구독 취소

인증된 사용자를 이슈에서 구독 해지하여 해당 이슈로부터 알림을받지 않습니다. 사용자가 이 문제에 구독되지 않은 경우 304 상태 코드가 반환됩니다.

POST /projects/:id/issues/:issue_iid/unsubscribe

지원되는 속성:

속성 타입 필수 여부 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩 된 경로.
issue_iid 정수 프로젝트의 이슈의 내부 ID.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/unsubscribe"

예시 응답:

{
  "id": 93,
  "iid": 12,
  "project_id": 5,
  "title": "Incidunt et rerum ea expedita iure quibusdam.",
  "description": "Et cumque architecto sed aut ipsam.",
  "state": "opened",
  "created_at": "2016-04-05T21:41:45.217Z",
  "updated_at": "2016-04-07T13:02:37.905Z",
  "labels": [],
  "upvotes": 4,
  "downvotes": 0,
  "merge_requests_count": 0,
  "milestone": null,
  "assignee": {
    "name": "Edwardo Grady",
    "username": "keyon",
    "id": 21,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/3e6f06a86cf27fa8b56f3f74f7615987?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/keyon"
  },
  "type": "ISSUE",
  "closed_at": null,
  "closed_by": null,
  "author": {
    "name": "Vivian Hermann",
    "username": "orville",
    "id": 11,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/5224fd70153710e92fb8bcf79ac29d67?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/orville"
  },
  "subscribed": false,
  "due_date": null,
  "web_url": "http://gitlab.example.com/my-group/my-project/issues/12",
  "references": {
    "short": "#12",
    "relative": "#12",
    "full": "my-group/my-project#12"
  },
  "confidential": false,
  "discussion_locked": false,
  "issue_type": "issue",
  "severity": "UNKNOWN",
  "task_completion_status": {
    "count": 0,
    "completed_count": 0
  }
}

할 일 항목 생성

현재 사용자를 위해 이슈에 대한 할 일 항목을 수동으로 생성합니다. 사용자에 대한 해당 이슈의 할 일 항목이 이미 존재하는 경우 304 상태 코드가 반환됩니다.

POST /projects/:id/issues/:issue_iid/todo

지원되는 속성:

속성 타입 필수 여부 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩 된 경로.
issue_iid 정수 프로젝트의 이슈의 내부 ID.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/todo"

예시 응답:

{
  "id": 112,
  "project": {
    "id": 5,
    "name": "GitLab CI/CD",
    "name_with_namespace": "GitLab Org / GitLab CI/CD",
    "path": "gitlab-ci",
    "path_with_namespace": "gitlab-org/gitlab-ci"
  },
  "author": {
    "name": "Administrator",
    "username": "root",
    "id": 1,
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/root"
  },
  "action_name": "marked",
  "target_type": "Issue",
  "target": {
    "id": 93,
    "iid": 10,
    "project_id": 5,
    "title": "Vel voluptas atque dicta mollitia adipisci qui at.",
    "description": "Tempora laboriosam sint magni sed voluptas similique.",
    "state": "closed",
    "created_at": "2016-06-17T07:47:39.486Z",
    "updated_at": "2016-07-01T11:09:13.998Z",
    "labels": [],
    "milestone": {
      "id": 26,
      "iid": 1,
      "project_id": 5,
      "title": "v0.0",
      "description": "Accusantium nostrum rerum quae quia quis nesciunt suscipit id.",
      "state": "closed",
      "created_at": "2016-06-17T07:47:33.832Z",
      "updated_at": "2016-06-17T07:47:33.832Z",
      "due_date": null
    },
    "assignees": [
      {
        "name": "Jarret O'Keefe",
        "username": "francisca",
        "id": 14,
        "state": "active",
        "avatar_url": "http://www.gravatar.com/avatar/a7fa515d53450023c83d62986d0658a8?s=80&d=identicon",
        "web_url": "https://gitlab.example.com/francisca"
      }
    ],
    "assignee": {
      "name": "Jarret O'Keefe",
      "username": "francisca",
      "id": 14,
      "state": "active",
      "avatar_url": "http://www.gravatar.com/avatar/a7fa515d53450023c83d62986d0658a8?s=80&d=identicon",
      "web_url": "https://gitlab.example.com/francisca"
    },
    "type": "ISSUE",
    "author": {
      "name": "Maxie Medhurst",
      "username": "craig_rutherford",
      "id": 12,
      "state": "active",
      "avatar_url": "http://www.gravatar.com/avatar/a0d477b3ea21970ce6ffcbb817b0b435?s=80&d=identicon",
      "web_url": "https://gitlab.example.com/craig_rutherford"
    },
    "subscribed": true,
    "user_notes_count": 7,
    "upvotes": 0,
    "downvotes": 0,
    "merge_requests_count": 0,
    "due_date": null,
    "web_url": "http://gitlab.example.com/my-group/my-project/issues/10",
    "references": {
      "short": "#10",
      "relative": "#10",
      "full": "my-group/my-project#10"
    },
    "confidential": false,
    "discussion_locked": false,
    "issue_type": "issue",
    "severity": "UNKNOWN",
    "task_completion_status": {
      "count": 0,
      "completed_count": 0
    }
  },
  "target_url": "https://gitlab.example.com/gitlab-org/gitlab-ci/issues/10",
  "body": "Vel voluptas atque dicta mollitia adipisci qui at.",
  "state": "pending",
  "created_at": "2016-07-01T11:09:13.992Z"
}

경고: assignee 열은 더 이상 사용되지 않습니다. 이제 GitLab EE API에 맞추기 위해 단일 크기의 배열 assignees로 표시합니다.

이슈를 에픽으로 프로모션하기

Tier: 프리미엄, 얼티메이트 제공: GitLab.com, Self-managed, GitLab Dedicated

/promote 빠른 액션을 사용하여 이슈를 에픽으로 프로모션합니다.

이슈를 에픽으로 프로모션하려면 새로운 라인의 시작에 /promote를 포함하는 코멘트를 추가합니다. 이슈를 에픽으로 프로모션하기 위한 자세한 정보는 이슈를 에픽으로 프로모션하기를 참조하세요.

POST /projects/:id/issues/:issue_iid/notes

지원되는 속성:

속성 유형 필수 설명
id integer/string Yes 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID.
body String Yes 코멘트 내용. 새로운 라인의 시작에 /promote를 포함해야 합니다. 코멘트에 /promote만 포함되어 있다면 이슈를 프로모션하지만 코멘트는 추가되지 않습니다. 그 외의 경우 다른 라인이 코멘트를 형성합니다.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes?body=에픽으로%20프로모션%20하자%0A%0A%2Fpromote"

예시 응답:

{
  "id": 699,
  "type": null,
  "body": "에픽으로 프로모션하자",
  "attachment": null,
  "author": {
    "id": 1,
    "name": "Alexandra Bashirian",
    "username": "eileen.lowe",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "https://gitlab.example.com/eileen.lowe"
  },
  "created_at": "2020-12-03T12:27:17.844Z",
  "updated_at": "2020-12-03T12:27:17.844Z",
  "system": false,
  "noteable_id": 461,
  "noteable_type": "Issue",
  "resolvable": false,
  "confidential": false,
  "noteable_iid": 33,
  "commands_changes": {
    "promote_to_epic": true
  }
}

시간 추적

다음 요청은 이슈에 대한 시간 추적과 관련이 있습니다.

이슈에 대한 시간 예상 설정

이 이슈에 대한 작업 예상 시간을 설정합니다.

POST /projects/:id/issues/:issue_iid/time_estimate

지원되는 속성:

속성 유형 필수 설명
duration string Yes 인간이 읽기 쉬운 형식의 기간입니다. 예: 3h30m.
id integer/string Yes 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/time_estimate?duration=3h30m"

예시 응답:

{
  "human_time_estimate": "3h 30m",
  "human_total_time_spent": null,
  "time_estimate": 12600,
  "total_time_spent": 0
}

이슈에 대한 시간 예상 재설정

이 이슈에 대한 예상 시간을 0초로 재설정합니다.

POST /projects/:id/issues/:issue_iid/reset_time_estimate

지원되는 속성:

속성 유형 필수 설명
id integer/string Yes 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/reset_time_estimate"

예시 응답:

{
  "human_time_estimate": null,
  "human_total_time_spent": null,
  "time_estimate": 0,
  "total_time_spent": 0
}

이슈에 대한 소요 시간 추가

이 이슈에 대해 소요된 시간을 추가합니다.

POST /projects/:id/issues/:issue_iid/add_spent_time

지원되는 속성:

속성 유형 필수 설명
duration string Yes 인간이 읽기 쉬운 형식의 기간입니다. 예: 3h30m
id integer/string Yes 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid integer Yes 프로젝트의 이슈의 내부 ID.
summary string No 시간이 소요된 방식에 대한 요약.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/add_spent_time?duration=1h"

예시 응답:

{
  "human_time_estimate": null,
  "human_total_time_spent": "1h",
  "time_estimate": 0,
  "total_time_spent": 3600
}

이슈에 사용된 시간 재설정

이 문제에 대한 총 사용 시간을 0초로 재설정합니다.

POST /projects/:id/issues/:issue_iid/reset_spent_time

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트의 이슈 내부 ID.

예시 요청:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/reset_spent_time"

예시 응답:

{
  "human_time_estimate": null,
  "human_total_time_spent": null,
  "time_estimate": 0,
  "total_time_spent": 0
}

시간 추적 통계 가져오기

인간이 읽을 수 있는 형식(예: 1시간30분)과 초 단위로 이슈의 시간 추적 통계를 가져옵니다.

프로젝트가 비공개이거나 이슈가 비밀이면, 인증을 제공해야 합니다. 이를 위한 선호하는 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /projects/:id/issues/:issue_iid/time_stats

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트의 이슈 내부 ID.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/time_stats"

예시 응답:

{
  "human_time_estimate": "2시간",
  "human_total_time_spent": "1시간",
  "time_estimate": 7200,
  "total_time_spent": 3600
}

병합 요청

다음 요청은 이슈와 병합 요청 간의 관계와 관련이 있습니다.

이슈와 관련된 병합 요청 목록

이슈와 관련된 모든 병합 요청을 가져옵니다.

프로젝트가 비공개이거나 이슈가 비밀이면, 인증을 제공해야 합니다. 이를 위한 선호하는 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /projects/:id/issues/:issue_iid/related_merge_requests

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트의 이슈 내부 ID.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/issues/11/related_merge_requests"

예시 응답:

[
  {
    "id": 29,
    "iid": 11,
    "project_id": 1,
    "title": "Provident eius eos blanditiis consequatur neque odit.",
    "description": "Ut consequatur ipsa aspernatur quisquam voluptatum fugit. Qui harum corporis quo fuga ut incidunt veritatis. Autem necessitatibus et harum occaecati nihil ea.\r\n\r\ntwitter/flight#8",
    "state": "opened",
    "created_at": "2018-09-18T14:36:15.510Z",
    "updated_at": "2018-09-19T07:45:13.089Z",
    "closed_by": null,
    "closed_at": null,
    "target_branch": "v2.x",
    "source_branch": "so_long_jquery",
    "user_notes_count": 9,
    "upvotes": 0,
    "downvotes": 0,
    ...
  }
]

특정 이슈를 병합시 종료하는 병합 요청 목록

병합시 특정 이슈를 종료하는 모든 병합 요청을 가져옵니다.

프로젝트가 비공개이거나 이슈가 비밀스럽다면, 권한 부여를 위해 자격 증명을 제공해야 합니다. 이를 하는 우선적인 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /projects/:id/issues/:issue_iid/closed_by

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/issues/11/closed_by"

예시 응답:

[
  {
    "id": 6471,
    "iid": 6432,
    "project_id": 1,
    "title": "add a test for cgi lexer options",
    "description": "closes #11",
    "state": "opened",
    "created_at": "2017-04-06T18:33:34.168Z",
    "updated_at": "2017-04-09T20:10:24.983Z",
    "target_branch": "main",
    "source_branch": "feature.custom-highlighting",
    "upvotes": 0,
    "downvotes": 0,
    "author": {
      "name": "Administrator",
      "username": "root",
      "id": 1,
      "state": "active",
      "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
      "web_url": "https://gitlab.example.com/root"
    },
    "assignee": null,
    "source_project_id": 1,
    "target_project_id": 1,
    "closed_at": null,
    "closed_by": null,
    "labels": [],
    "draft": false,
    "work_in_progress": false,
    "milestone": null,
    "merge_when_pipeline_succeeds": false,
    "merge_status": "unchecked",
    "sha": "5a62481d563af92b8e32d735f2fa63b94e806835",
    "merge_commit_sha": null,
    "squash_commit_sha": null,
    "user_notes_count": 1,
    "should_remove_source_branch": null,
    "force_remove_source_branch": false,
    "web_url": "https://gitlab.example.com/gitlab-org/gitlab-test/merge_requests/6432",
    "reference": "!6432",
    "references": {
      "short": "!6432",
      "relative": "!6432",
      "full": "gitlab-org/gitlab-test!6432"
    },
    "time_stats": {
      "time_estimate": 0,
      "total_time_spent": 0,
      "human_time_estimate": null,
      "human_total_time_spent": null
    }
  }
]

이슈 참여자 목록

이슈에 참여하는 사용자를 나열합니다.

프로젝트가 비공개이거나 이슈가 비밀스럽다면, 권한 부여를 위해 자격 증명을 제공해야 합니다. 이를 하는 우선적인 방법은 개인 액세스 토큰을 사용하는 것입니다.

GET /projects/:id/issues/:issue_iid/participants

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  -url "https://gitlab.example.com/api/v4/projects/5/issues/93/participants"

예시 응답:

[
  {
    "id": 1,
    "name": "John Doe1",
    "username": "user1",
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon",
    "web_url": "http://gitlab.example.com/user1"
  },
  {
    "id": 5,
    "name": "John Doe5",
    "username": "user5",
    "state": "active",
    "avatar_url": "http://www.gravatar.com/avatar/4aea8cf834ed91844a2da4ff7ae6b491?s=80&d=identicon",
    "web_url": "http://gitlab.example.com/user5"
  }
]

이슈에 대한 코멘트

노트 API를 사용하여 코멘트와 상호 작용합니다.

사용자 에이전트 세부 정보 가져오기

관리자 전용으로 사용 가능합니다.

이슈를 생성한 사용자의 사용자 에이전트 문자열과 IP 주소를 가져옵니다. 스팸 추적에 사용됩니다.

GET /projects/:id/issues/:issue_iid/user_agent_detail

지원되는 속성:

속성 유형 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 URL 인코딩된 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/user_agent_detail"

예시 응답:

{
  "user_agent": "AppleWebKit/537.36",
  "ip_address": "127.0.0.1",
  "akismet_submitted": false
}

이슈 상태 이벤트 목록

상태가 설정된 시점, 누가 설정했는지, 그리고 언제 일어났는지 추적하려면 리소스 상태 이벤트 API를 사용하세요.

인시던트

다음 요청은 인시던트에 대해서만 사용할 수 있습니다.

메트릭 이미지 업로드

인시던트에 대해서만 사용할 수 있습니다.

인시던트의 메트릭 탭에 표시할 메트릭 차트의 스크린샷을 업로드합니다. 이미지를 업로드하면 텍스트나 원본 그래프에 대한 링크를 이미지와 연결할 수 있습니다. URL을 추가하면 업로드한 이미지 위의 하이퍼링크를 선택하여 원본 그래프에 액세스할 수 있습니다.

POST /projects/:id/issues/:issue_iid/metric_images

지원되는 속성:

속성 타입 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 [URL-encoded 경로]의 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.
file 파일 업로드 할 이미지 파일.
url 문자열 아니요 더 많은 메트릭 정보를 보기 위한 URL.
url_text 문자열 아니요 이미지 또는 URL에 대한 설명.

예제 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --form 'file=@/path/to/file.png' \
  --form 'url=http://example.com' \
  --form 'url_text=Example website' \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/metric_images"

예제 응답:

{
  "id": 23,
  "created_at": "2020-11-13T00:06:18.084Z",
  "filename": "file.png",
  "file_path": "/uploads/-/system/issuable_metric_image/file/23/file.png",
  "url": "http://example.com",
  "url_text": "Example website"
}

메트릭 이미지 목록

인시던트에 대해서만 사용할 수 있습니다.

인시던트의 메트릭 탭에 표시된 메트릭 차트의 스크린샷을 나열합니다.

GET /projects/:id/issues/:issue_iid/metric_images

지원되는 속성:

속성 타입 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 [URL-encoded 경로]의 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.

예제 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  -url "https://gitlab.example.com/api/v4/projects/5/issues/93/metric_images"

예제 응답:

[
  {
    "id": 17,
    "created_at": "2020-11-12T20:07:58.156Z",
    "filename": "sample_2054",
    "file_path": "/uploads/-/system/issuable_metric_image/file/17/sample_2054.png",
    "url": "example.com/metric"
  },
  {
    "id": 18,
    "created_at": "2020-11-12T20:14:26.441Z",
    "filename": "sample_2054",
    "file_path": "/uploads/-/system/issuable_metric_image/file/18/sample_2054.png",
    "url": "example.com/metric"
  }
]

메트릭 이미지 업데이트

인시던트에 대해서만 사용할 수 있습니다.

인시던트의 메트릭 탭에 표시된 메트릭 차트의 스크린샷의 속성을 편집합니다.

PUT /projects/:id/issues/:issue_iid/metric_images/:image_id

지원되는 속성:

속성 타입 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 [URL-encoded 경로]의 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.
image_id 정수 이미지의 ID.
url 문자열 아니요 더 많은 메트릭 정보를 보기 위한 URL.
url_text 문자열 아니요 이미지 또는 URL에 대한 설명.

예제 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --request PUT \
  --form 'url=http://example.com' \
  --form 'url_text=Example website' \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/metric_images/1"

예제 응답:

{
  "id": 23,
  "created_at": "2020-11-13T00:06:18.084Z",
  "filename": "file.png",
  "file_path": "/uploads/-/system/issuable_metric_image/file/23/file.png",
  "url": "http://example.com",
  "url_text": "Example website"
}

메트릭 이미지 삭제

인시던트에 대해서만 사용할 수 있습니다.

인시던트의 메트릭 탭에 표시된 메트릭 차트의 스크린샷을 삭제합니다.

DELETE /projects/:id/issues/:issue_iid/metric_images/:image_id

지원되는 속성:

속성 타입 필수 설명
id 정수/문자열 프로젝트의 전역 ID 또는 [URL-encoded 경로]의 경로.
issue_iid 정수 프로젝트 이슈의 내부 ID.
image_id 정수 이미지의 ID.

예제 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --request DELETE \
  --url "https://gitlab.example.com/api/v4/projects/5/issues/93/metric_images/1"

다음 상태 코드를 반환할 수 있습니다:

  • 204 No Content, 이미지가 성공적으로 삭제된 경우.
  • 400 Bad Request, 이미지가 삭제되지 않은 경우.