- 이슈 페이지 매김
- 이슈 목록 가져오기
- 그룹 이슈 목록
- 프로젝트 이슈 목록
- 단일 이슈
- 단일 프로젝트 이슈
- 새 이슈
- 이슈 편집
- 이슈 삭제
- 이슈 재정렬
- 이슈 이동
- 이슈 복제
- 알림
- 할 일 항목 만들기
- 이슈를 에픽으로 승격하기
- 시간 추적
- 병합 요청
- 이슈에 참여자 목록
- 이슈에 대한 댓글
- 사용자 에이전트 세부정보 가져오기
- 이슈 상태 이벤트 목록
- 사고
이슈 API
REST API를 사용하여 GitLab Issues와 상호작용합니다.
사용자가 비공개 프로젝트의 구성원이 아닌 경우, 해당 프로젝트에 대한 GET
요청은 404
상태 코드를 반환합니다.
이슈 페이지 매김
기본적으로, GET
요청은 한 번에 20개의 결과를 반환합니다. 이는 API 결과가 페이지로 구분되어 있기 때문입니다.
페이지 매김에 대해 자세히 읽어보세요.
references.relative
속성은 요청된 이슈의 그룹 또는 프로젝트에 상대적입니다.이슈가 해당 프로젝트에서 가져올 경우,
relative
형식은 short
형식과 동일합니다.그룹 또는 프로젝트 간에 요청되었을 때는,
full
형식과 동일할 것으로 예상됩니다.이슈 목록 가져오기
인증된 사용자가 접근할 수 있는 모든 이슈를 가져옵니다. 기본적으로 현재 사용자가 생성한 이슈만 반환됩니다. 모든 이슈를 가져오려면
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 |
정수 | 아니오 | 주어진 epic ID에 연결된 이슈를 반환합니다. None 은 에픽과 연결되지 않은 이슈를 반환합니다. Any 는 에픽과 연결된 이슈를 반환합니다. Premium 및 Ultimate 전용입니다. |
health_status |
문자열 | 아니오 | 지정된 health_status 가 있는 이슈를 반환합니다. (도입됨 GitLab 15.4). GitLab 15.5 및 이후 버전에서는 None 은 할당된 건강 상태가 없는 이슈를 반환하고, Any 는 건강 상태가 할당된 이슈를 반환합니다. Ultimate 전용입니다. |
iids[] |
정수 배열 | 아니오 | 주어진 iid 를 가진 이슈만 반환합니다. |
in |
문자열 | 아니오 |
search 속성의 범위를 수정합니다. title , description 또는 이를 쉼표로 연결한 문자열. 기본값은 title,description 입니다. |
issue_type |
문자열 | 아니오 | 특정 유형의 이슈로 필터링합니다. issue , incident , test_case 또는 task 중 하나입니다. |
iteration_id |
정수 | 아니오 | 주어진 반복 ID에 할당된 이슈를 반환합니다. None 은 반복에 속하지 않는 이슈를 반환합니다. Any 는 반복에 속하는 이슈를 반환합니다. iteration_title 과는 상호 배타적입니다. Premium 및 Ultimate 전용입니다. |
iteration_title |
문자열 | 아니오 | 주어진 제목이 있는 반복에 할당된 이슈를 반환합니다. iteration_id 와 유사하며 상호 배타적입니다. Premium 및 Ultimate 전용입니다. |
labels |
문자열 | 아니오 | 쉼표로 구분된 레이블 이름 목록. 반환되려면 이슈는 모든 레이블을 가져야 합니다. None 은 레이블이 없는 모든 이슈를 나열합니다. Any 는 최소한 하나의 레이블이 있는 모든 이슈를 나열합니다. No+Label (사용 중단) 목록은 레이블이 없는 모든 이슈를 나열합니다. 미리 정의된 이름은 대소문자를 구분하지 않습니다. |
milestone_id |
문자열 | 아니오 | 주어진 시간 제한 값을 가진 마일스톤에 할당된 이슈를 반환합니다 (None , Any , Upcoming , 및 Started ). None 은 마일스톤이 없는 모든 이슈를 나열합니다. Any 는 할당된 마일스톤이 있는 모든 이슈를 나열합니다. Upcoming 은 미래에 기한이 오는 마일스톤에 할당된 모든 이슈를 나열합니다. Started 는 열린 시작 마일스톤에 할당된 모든 이슈를 나열합니다. milestone 및 milestone_id 는 상호 배타적입니다. |
milestone |
문자열 | 아니오 | 마일스톤 제목. None 은 마일스톤이 없는 모든 이슈를 나열합니다. Any 는 할당된 마일스톤이 있는 모든 이슈를 나열합니다. None 또는 Any 를 사용하는 것은 미래에 사용 중단될 예정입니다. 대신 milestone_id 속성을 사용하세요. milestone 및 milestone_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_id 및 weight . |
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 |
문자열 | 아니오 | 이슈의 title 및 description 을 기준으로 검색합니다. |
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 는 할당된 이슈를 반환합니다. Premium 및 Ultimate 전용입니다. |
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"
},
"milestone" : {
"project_id" : 1,
"description" : "Ducimus nam enim ex consequatur cumque ratione.",
"state" : "closed",
"due_date" : null,
"iid" : 2,
"created_at" : "2016-01-04T15:31:39.996Z",
"title" : "v4.0",
"id" : 17,
"updated_at" : "2016-01-04T15:31:39.996Z"
},
"project_id" : 1,
"assignees" : [{
"state" : "active",
"id" : 1,
"name" : "Administrator",
"web_url" : "https://gitlab.example.com/root",
"avatar_url" : null,
"username" : "root"
}],
"assignee" : {
"state" : "active",
"id" : 1,
"name" : "Administrator",
"web_url" : "https://gitlab.example.com/root",
"avatar_url" : null,
"username" : "root"
},
"type" : "ISSUE",
"updated_at" : "2016-01-04T15:31:51.081Z",
"closed_at" : null,
"closed_by" : null,
"id" : 76,
"title" : "Consequatur vero maxime deserunt laboriosam est voluptas dolorem.",
"created_at" : "2016-01-04T15:31:51.081Z",
"moved_to_id" : null,
"iid" : 6,
"labels" : ["foo", "bar"],
"upvotes": 4,
"downvotes": 0,
"merge_requests_count": 0,
"user_notes_count": 1,
"due_date": "2016-07-22",
"imported": false,
"imported_from": "none",
"web_url": "http://gitlab.example.com/my-group/my-project/issues/6",
"references": {
"short": "#6",
"relative": "my-group/my-project#6",
"full": "my-group/my-project#6"
},
"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/1/issues/76",
"notes": "http://gitlab.example.com/api/v4/projects/1/issues/76/notes",
"award_emoji": "http://gitlab.example.com/api/v4/projects/1/issues/76/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
속성이 포함됩니다:
[
{
"state" : "opened",
"description" : "Ratione dolores corrupti mollitia soluta quia.",
"weight": null,
...
}
]
GitLab Premium 또는 Ultimate 사용자가 생성한 이슈에는 epic
속성이 포함됩니다:
{
"project_id" : 4,
"description" : "Omnis vero earum sunt corporis dolor et placeat.",
"epic_iid" : 5, //사용 중단, 대신 `epic` 속성의 `iid`를 사용하세요.
"epic": {
"id" : 42,
"iid" : 5,
"title": "My epic epic",
"url" : "/groups/h5bp/-/epics/5",
"group_id": 8
},
...
}
GitLab Premium 또는 Ultimate 사용자가 생성한 이슈에는 iteration
속성이 포함됩니다:
{
"iteration": {
"id": 90,
"iid": 4,
"sequence": 2,
"group_id": 162,
"title": null,
"description": null,
"state": 2,
"created_at": "2022-03-14T05:21:11.929Z",
"updated_at": "2022-03-14T05:21:11.929Z",
"start_date": "2022-03-08",
"due_date": "2022-03-14",
"web_url": "https://gitlab.com/groups/my-group/-/iterations/90"
}
...
}
GitLab Ultimate 사용자가 생성한 이슈에는 health_status
속성이 포함됩니다:
[
{
"state" : "opened",
"description" : "Ratione dolores corrupti mollitia soluta quia.",
"health_status": "on_track",
...
}
]
assignee
열은 사용 중단되었습니다. 이제 그것을 단일 크기의 배열 assignees
로 표시하여 GitLab EE API에 맞춥니다.그룹 이슈 목록
그룹의 이슈 목록을 가져옵니다.
그룹이 비공개인 경우, 인증을 위해 자격 증명을 제공해야 합니다.
이 작업을 수행하는 가장 좋은 방법은 개인 액세스 토큰을 사용하는 것입니다.
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
지원하는 속성:
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 그룹의 전역 ID 또는 URL 인코딩 경로입니다. |
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 |
문자열 | 아니요 | 기한이 없거나 기한이 지났거나 기한이 이번 주, 이번 달 또는 2주 전과 다음 달 사이인 이슈를 반환합니다. 수용 가능: 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 는 최소 하나의 반응이 있는 이슈를 반환합니다. |
non_archived |
부울 | 아니요 | 비상 archived 프로젝트의 이슈를 반환합니다. 기본값은 true입니다. |
not |
해시 | 아니요 | 제공된 매개변수와 일치하지 않는 이슈를 반환합니다. 수용 가능: labels , milestone , author_id , author_username , assignee_id , assignee_username , my_reaction_emoji , search , in . |
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 |
문자열 | 아니요 | 그룹 이슈를 title 및 description 에 대해 검색합니다. |
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/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
}
}
]
프리미엄 또는 궁극적인 사용자가 생성한 이슈에는 weight
속성이 포함됩니다:
[
{
"project_id" : 4,
"description" : "Omnis vero earum sunt corporis dolor et placeat.",
"weight": null,
...
}
]
프리미엄 또는 궁극적인 사용자가 생성한 이슈에는 epic
속성이 포함됩니다:
{
"project_id" : 4,
"description" : "Omnis vero earum sunt corporis dolor et placeat.",
"epic_iid" : 5, //더 이상 사용되지 않음, 대신 `epic` 속성의 `iid`를 사용하십시오.
"epic": {
"id" : 42,
"iid" : 5,
"title": "My epic epic",
"url" : "/groups/h5bp/-/epics/5",
"group_id": 8
},
...
}
궁극적인 사용자가 생성한 이슈에는 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
속성은 더 이상 사용되지 않으며 제거 예정입니다. 대신 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 에 의해 생성된 이슈를 반환합니다. 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 는 에픽과 관련된 이슈를 반환합니다. Premium 및 Ultimate만 해당합니다. |
iids[] |
정수 배열 | 아니오 | 주어진 iid 를 가진 이슈만 반환합니다. |
issue_type |
문자열 | 아니오 | 주어진 유형의 이슈로 필터링합니다. issue , incident , test_case 또는 task 중 하나입니다. |
iteration_id |
정수 | 아니오 | 주어진 반복 ID에 할당된 이슈를 반환합니다. None 은 반복에 속하지 않는 이슈를 반환합니다. Any 는 반복에 속하는 이슈를 반환합니다. iteration_title 과 상호 배타적입니다. Premium 및 Ultimate만 해당합니다. |
iteration_title |
문자열 | 아니오 | 주어진 제목의 반복에 할당된 이슈를 반환합니다. iteration_id 와 유사하며 상호 배타적입니다. Premium 및 Ultimate만 해당합니다. |
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 , search , in . |
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 |
문자열 | 아니오 | 이슈의 title 과 description 에 대해 검색합니다. |
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 는 가중치가 할당된 이슈를 반환합니다. Premium 및 Ultimate만 해당합니다. |
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"
},
"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" : "2016-01-05T15:31:46.176Z",
"closed_by" : {
"state" : "active",
"web_url" : "https://gitlab.example.com/root",
"avatar_url" : null,
"username" : "root",
"id" : 1,
"name" : "Administrator"
},
"user_notes_count": 1,
"due_date": "2016-07-22",
"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
},
"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 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": "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": "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": "관리자"
},
"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, // 비추천, `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
를 사용하세요.
단일 프로젝트 이슈
단일 프로젝트 이슈를 가져옵니다.
프로젝트가 비공개이거나 이슈가 기밀인 경우, 권한 부여를 위해 자격 증명을 제공해야 합니다.
이를 위한 권장 방법은 퍼스널 액세스 토큰을 사용하는 것입니다.
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": "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
속성은 더 이상 사용되지 않으며 제거 예정입니다. 대신 epic
속성의 iid
를 사용하세요.
새 이슈
새로운 프로젝트 이슈를 생성합니다.
POST /projects/:id/issues
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 프로젝트의 전역 ID 또는 URL 인코딩 경로입니다. |
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, //더 이상 사용되지 않음, `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 |
integer/string | 예 | 프로젝트의 글로벌 ID 또는 URL 인코딩 경로. |
issue_iid |
integer | 예 | 프로젝트 이슈의 내부 ID. |
add_labels |
string | 아니오 | 이슈에 추가할 쉼표로 구분된 라벨 이름. 라벨이 기존에 없으면 새로운 프로젝트 라벨을 생성하고 이슈에 할당합니다. |
assignee_ids |
integer array | 아니오 | 이슈를 할당할 사용자 ID. 0 으로 설정하거나 빈 값을 제공하여 모든 할당자를 해제할 수 있습니다. |
confidential |
boolean | 아니오 | 이슈를 비공개로 업데이트합니다. |
description |
string | 아니오 | 이슈의 설명. 1,048,576자까지 제한됩니다. |
discussion_locked |
boolean | 아니오 | 이슈의 논의가 잠겨 있는지 여부를 나타내는 플래그입니다. 논의가 잠겨 있으면 프로젝트 멤버만 코멘트를 추가하거나 편집할 수 있습니다. |
due_date |
string | 아니오 | 마감일. YYYY-MM-DD 형식의 날짜와 시간 문자열, 예: 2016-03-11 . |
epic_id |
integer | 아니오 | 이슈를 추가할 에픽의 ID. 유효한 값은 0 이상입니다. Premium 및 Ultimate 전용. |
epic_iid |
integer | 아니오 | 이슈를 추가할 에픽의 IID. 유효한 값은 0 이상입니다. (더 이상 사용되지 않음, 제거 예정 in API version 5). Premium 및 Ultimate 전용. |
issue_type |
string | 아니오 | 이슈의 유형을 업데이트합니다. issue , incident , test_case 또는 task 중 하나입니다. |
labels |
string | 아니오 | 이슈를 위한 쉼표로 구분된 라벨 이름. 빈 문자열로 설정하면 모든 라벨 할당을 해제합니다. 라벨이 기존에 없으면 새로운 프로젝트 라벨을 생성하고 이슈에 할당합니다. |
milestone_id |
integer | 아니오 | 이슈를 할당할 마일스톤의 글로벌 ID. 0 으로 설정하거나 빈 값을 제공하여 마일스톤 할당을 해제합니다. |
remove_labels |
string | 아니오 | 이슈에서 제거할 쉼표로 구분된 라벨 이름. |
state_event |
string | 아니오 | 이슈의 상태 이벤트. 이슈를 닫으려면 close 를 사용하고 다시 열려면 reopen 을 사용합니다. |
title |
string | 아니오 | 이슈의 제목. |
updated_at |
string | 아니오 | 이슈가 업데이트된 시간. 날짜와 시간 문자열, ISO 8601 형식, 예: 2016-03-11T03:45:40Z (관리자 또는 프로젝트 소유자 권한이 필요합니다). 빈 문자열이나 null 값은 허용되지 않습니다. |
weight |
integer | 아니오 | 이슈의 가중치. 유효한 값은 0 이상입니다. Premium 및 Ultimate 전용. |
예시 요청:
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" : "관리자"
},
"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
}
}
프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 weight
속성이 포함됩니다:
{
"project_id" : 4,
"description" : null,
"weight": null,
...
}
프리미엄 또는 얼티밋 사용자가 생성한 이슈에는 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
},
...
}
얼티밋 사용자가 생성한 이슈에는 health_status
속성이 포함됩니다:
[
{
"project_id" : 4,
"description" : "Omnis vero earum sunt corporis dolor et placeat.",
"health_status": "on_track",
...
}
]
경고:
epic_iid
속성은 더 이상 사용되지 않으며 제거 예정입니다.
대신 epic
속성의 iid
를 사용하세요.
경고:
assignee
열은 더 이상 사용되지 않습니다. 이제 GitLab EE API에 맞춰 단일 크기 배열 assignees
로 표시됩니다.
이슈 삭제
관리자 및 프로젝트 소유자만 사용 가능합니다.
이슈를 삭제합니다.
DELETE /projects/:id/issues/:issue_iid
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 프로젝트의 전역 ID 또는 URL 인코딩된 경로. |
issue_iid |
정수 | 예 | 프로젝트 이슈의 내부 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 |
정수/문자열 | 예 | 프로젝트의 전역 ID 또는 URL 인코딩된 경로. |
issue_iid |
정수 | 예 | 프로젝트 이슈의 내부 ID입니다. |
move_after_id |
정수 | 아니오 | 이 이슈 뒤에 놓여야 하는 프로젝트 이슈의 전역 ID입니다. |
move_before_id |
정수 | 아니오 | 이 이슈 앞에 놓여야 하는 프로젝트 이슈의 전역 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 |
정수/문자열 | 예 | 프로젝트의 전역 ID 또는 URL 인코딩된 경로. |
issue_iid |
정수 | 예 | 프로젝트 이슈의 내부 ID입니다. |
to_project_id |
정수 | 예 | 새 프로젝트의 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 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 `iid` of the `epic` attribute
"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
열은 더 이상 사용되지 않습니다. 이제 assignees
라는 단일 크기 배열로 표시됩니다.
경고:
epic_iid
속성은 더 이상 사용되지 않으며 제거 예정입니다. 대신 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
지원되는 속성:
Attribute | Type | Required | Description |
---|---|---|---|
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/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, //폐지 예정, `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
를 사용하세요.
이슈 구독 취소하기
인증된 사용자가 이슈에서 구독을 취소하여 알림을 받지 않도록 합니다.
사용자가 이슈에 구독되어 있지 않으면 상태 코드 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
로 표시됩니다.
이슈를 에픽으로 승격하기
이슈를 /promote
퀵 액션을 사용하여 에픽으로 승격합니다.
이슈를 에픽으로 승격하는 것에 대한 더 많은 정보는
이슈를 에픽으로 승격하기를 참조하세요.
POST /projects/:id/issues/:issue_iid/notes
지원하는 속성:
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 프로젝트의 글로벌 ID 또는 URL 인코딩 경로. |
issue_iid |
정수 | 예 | 프로젝트 이슈의 내부 ID. |
body |
문자열 | 예 | 노트의 내용. 새 줄의 시작에 /promote 를 포함해야 합니다. 노트가 /promote 만 포함될 경우, 이슈를 승격하지만 댓글은 추가되지 않습니다. 그렇지 않으면 다른 줄이 댓글을 형성합니다. |
예제 요청:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/issues/11/notes?body=Lets%20promote%20this%20to%20an%20epic%0A%0A%2Fpromote"
예제 응답:
{
"id":699,
"type":null,
"body":"Lets promote this to an epic",
"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 |
문자열 | 예 | 사람이 읽을 수 있는 형식의 지속 시간. 예: 3h30m . |
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/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 |
정수/문자열 | 예 | 프로젝트의 전역 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_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 |
문자열 | 예 | 사람 읽기 가능한 형식의 기간. 예: 3h30m
|
id |
정수/문자열 | 예 | 프로젝트의 전역 ID 또는 URL 인코딩된 경로. |
issue_iid |
정수 | 예 | 프로젝트 문제의 내부 ID. |
summary |
문자열 | 아니오 | 시간을 어떻게 사용했는지에 대한 요약. |
예시 요청:
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
}
시간 추적 통계 가져오기
문제에 대한 시간 추적 통계를 사람 읽기 가능한 형식(예: 1h30m
) 및 초 단위로 가져옵니다.
프로젝트가 비공개이거나 문제가 기밀인 경우 인증을 위한 자격 증명이 필요합니다.
이를 수행하는 선호 방법은 개인 액세스 토큰을 사용하는 것입니다.
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": "2h",
"human_total_time_spent": "1h",
"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,
"author": {
"id": 14,
"name": "Verna Hills",
"username": "lawanda_reinger",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/de68a91aeab1cff563795fb98a0c2cc0?s=80&d=identicon",
"web_url": "https://gitlab.example.com/lawanda_reinger"
},
"assignee": {
"id": 19,
"name": "Jody Baumbach",
"username": "felipa.kuvalis",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/6541fc75fc4e87e203529bd275fafd07?s=80&d=identicon",
"web_url": "https://gitlab.example.com/felipa.kuvalis"
},
"source_project_id": 1,
"target_project_id": 1,
"labels": [],
"draft": false,
"work_in_progress": false,
"milestone": {
"id": 27,
"iid": 2,
"project_id": 1,
"title": "v1.0",
"description": "Et tenetur voluptatem minima doloribus vero dignissimos vitae.",
"state": "active",
"created_at": "2018-09-18T14:35:44.353Z",
"updated_at": "2018-09-18T14:35:44.353Z",
"due_date": null,
"start_date": null,
"web_url": "https://gitlab.example.com/twitter/flight/milestones/2"
},
"merge_when_pipeline_succeeds": false,
"merge_status": "cannot_be_merged",
"sha": "3b7b528e9353295c1c125dad281ac5b5deae5f12",
"merge_commit_sha": null,
"squash_commit_sha": null,
"discussion_locked": null,
"should_remove_source_branch": null,
"force_remove_source_branch": false,
"reference": "!11",
"web_url": "https://gitlab.example.com/twitter/flight/merge_requests/4",
"references": {
"short": "!4",
"relative": "!4",
"full": "twitter/flight!4"
},
"time_stats": {
"time_estimate": 0,
"total_time_spent": 0,
"human_time_estimate": null,
"human_total_time_spent": null
},
"squash": false,
"task_completion_status": {
"count": 0,
"completed_count": 0
},
"changes_count": "10",
"latest_build_started_at": "2018-12-05T01:16:41.723Z",
"latest_build_finished_at": "2018-12-05T02:35:54.046Z",
"first_deployed_to_production_at": null,
"pipeline": {
"id": 38980952,
"sha": "81c6a84c7aebd45a1ac2c654aa87f11e32338e0a",
"ref": "test-branch",
"status": "success",
"web_url": "https://gitlab.com/gitlab-org/gitlab/pipelines/38980952"
},
"head_pipeline": {
"id": 38980952,
"sha": "81c6a84c7aebd45a1ac2c654aa87f11e32338e0a",
"ref": "test-branch",
"status": "success",
"web_url": "https://gitlab.example.com/twitter/flight/pipelines/38980952",
"before_sha": "3c738a37eb23cf4c0ed0d45d6ddde8aad4a8da51",
"tag": false,
"yaml_errors": null,
"user": {
"id": 19,
"name": "Jody Baumbach",
"username": "felipa.kuvalis",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/6541fc75fc4e87e203529bd275fafd07?s=80&d=identicon",
"web_url": "https://gitlab.example.com/felipa.kuvalis"
},
"created_at": "2018-12-05T01:16:13.342Z",
"updated_at": "2018-12-05T02:35:54.086Z",
"started_at": "2018-12-05T01:16:41.723Z",
"finished_at": "2018-12-05T02:35:54.046Z",
"committed_at": null,
"duration": 4436,
"coverage": "46.68",
"detailed_status": {
"icon": "status_warning",
"text": "passed",
"label": "passed with warnings",
"group": "success-with-warnings",
"tooltip": "passed",
"has_details": true,
"details_path": "/twitter/flight/pipelines/38",
"illustration": null,
"favicon": "https://gitlab.example.com/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png"
}
},
"diff_refs": {
"base_sha": "d052d768f0126e8cddf80afd8b1eb07f406a3fcb",
"head_sha": "81c6a84c7aebd45a1ac2c654aa87f11e32338e0a",
"start_sha": "d052d768f0126e8cddf80afd8b1eb07f406a3fcb"
},
"merge_error": null,
"user": {
"can_merge": true
}
}
]
특정 이슈를 닫는 병합 요청 목록
병합 시 특정 이슈를 닫는 모든 병합 요청을 가져옵니다.
프로젝트가 비공개이거나 이슈가 기밀인 경우, 인증을 위해 자격 증명이 필요합니다.
이 작업을 수행하는 가장 좋은 방법은 개인 액세스 토큰을 사용하는 것입니다.
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": "cgi lexer 옵션에 대한 테스트 추가",
"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": "관리자",
"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 |
integer/string | 예 | 프로젝트의 URL 인코딩된 경로 또는 전역 ID입니다. |
issue_iid |
integer | 예 | 프로젝트 이슈의 내부 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"
}
]
이슈에 대한 댓글
Notes API를 사용하여 댓글과 상호작용합니다.
사용자 에이전트 세부정보 가져오기
관리자만 사용할 수 있습니다.
이슈를 생성한 사용자의 사용자 에이전트 문자열과 IP를 가져옵니다.
스팸 추적에 사용됩니다.
GET /projects/:id/issues/:issue_iid/user_agent_detail
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 URL 인코딩된 경로 또는 전역 ID입니다. |
issue_iid |
integer | 예 | 프로젝트 이슈의 내부 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
}
이슈 상태 이벤트 목록
어떤 상태가 설정되었는지, 누가 했는지, 언제 발생했는지 추적하려면 Resource state events API를 사용하세요.
사고
다음 요청은 사고에만 사용할 수 있습니다.
메트릭 이미지 업로드
사고에만 사용할 수 있습니다.
사고의 Metrics 탭에 보여줄 메트릭 차트의 스크린샷을 업로드합니다.
이미지를 업로드할 때, 해당 이미지를 텍스트 또는 원본 그래프의 링크와 연관시킬 수 있습니다.
URL을 추가하면, 업로드된 이미지 위의 하이퍼링크를 선택하여 원본 그래프에 접근할 수 있습니다.
POST /projects/:id/issues/:issue_iid/metric_images
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 URL 인코딩된 경로 또는 전역 ID입니다. |
issue_iid |
integer | 예 | 프로젝트 이슈의 내부 ID입니다. |
file |
file | 예 | 업로드할 이미지 파일입니다. |
url |
string | 아니오 | 더 많은 메트릭 정보를 보기 위한 URL입니다. |
url_text |
string | 아니오 | 이미지 또는 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"
}
메트릭 이미지 목록
사고에 대해서만 사용할 수 있습니다.
사고의 Metrics 탭에 표시된 메트릭 차트의 스크린샷 목록입니다.
GET /projects/:id/issues/:issue_iid/metric_images
지원되는 속성:
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 전역 ID 또는 프로젝트의 URL-인코딩 경로입니다. |
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"
}
]
메트릭 이미지 업데이트
사고에 대해서만 사용할 수 있습니다.
사고의 Metrics 탭에 표시된 메트릭 차트의 스크린샷 속성을 편집합니다.
PUT /projects/:id/issues/:issue_iid/metric_images/:image_id
지원되는 속성:
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 전역 ID 또는 프로젝트의 URL-인코딩 경로입니다. |
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=예시 웹사이트' \
--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": "예시 웹사이트"
}
메트릭 이미지 삭제
사고에 대해서만 사용할 수 있습니다.
사고의 Metrics 탭에 표시된 메트릭 차트의 스크린샷을 삭제합니다.
DELETE /projects/:id/issues/:issue_iid/metric_images/:image_id
지원되는 속성:
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 전역 ID 또는 프로젝트의 URL-인코딩 경로입니다. |
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
, 이미지 삭제에 실패한 경우.