리소스 상태 이벤트 API
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
이 API로 이슈, 머지 리퀘스트, 에픽의 상태 변경 이벤트를 다룹니다. 이 API는 리소스의 최초 상태(created 또는 opened)를 추적하지 않습니다. 이슈 하나의 모든 상태 이벤트를 조회합니다. 특정 프로젝트 이슈의 상태 이벤트 하나를 조회합니다.
이 API로 이슈, 머지 리퀘스트, 에픽의 상태 변경 이벤트를 다룹니다.
이 API는 리소스의 최초 상태(created 또는 opened)를 추적하지 않습니다.
닫히거나 다시 열린 적이 없는 리소스에 대해서는 빈 목록을 반환합니다.
이슈#
프로젝트 이슈 상태 이벤트 조회#
이슈 하나의 모든 상태 이벤트를 조회합니다.
GET /projects/:id/issues/:issue_iid/resource_state_events
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
issue_iid |
integer | 예 | 이슈의 IID |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_state_events"
응답 예시:
[
{
"id": 142,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-20T13:38:20.077Z",
"resource_type": "Issue",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "opened"
},
{
"id": 143,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-21T14:38:20.077Z",
"resource_type": "Issue",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "closed"
}
]
단일 이슈 상태 이벤트 조회#
특정 프로젝트 이슈의 상태 이벤트 하나를 조회합니다.
GET /projects/:id/issues/:issue_iid/resource_state_events/:resource_state_event_id
파라미터:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
issue_iid |
integer | 예 | 이슈의 IID |
resource_state_event_id |
integer | 예 | 상태 이벤트의 ID |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/issues/11/resource_state_events/143"
응답 예시:
{
"id": 143,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-21T14:38:20.077Z",
"resource_type": "Issue",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "closed"
}
머지 리퀘스트#
프로젝트 머지 리퀘스트 상태 이벤트 조회#
머지 리퀘스트 하나의 모든 상태 이벤트를 조회합니다.
GET /projects/:id/merge_requests/:merge_request_iid/resource_state_events
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
merge_request_iid |
integer | 예 | 머지 리퀘스트의 IID |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/resource_state_events"
응답 예시:
[
{
"id": 142,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-20T13:38:20.077Z",
"resource_type": "MergeRequest",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "opened"
},
{
"id": 143,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-21T14:38:20.077Z",
"resource_type": "MergeRequest",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "closed"
}
]
단일 머지 리퀘스트 상태 이벤트 조회#
특정 프로젝트 머지 리퀘스트의 상태 이벤트 하나를 조회합니다.
GET /projects/:id/merge_requests/:merge_request_iid/resource_state_events/:resource_state_event_id
파라미터:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
merge_request_iid |
integer | 예 | 머지 리퀘스트의 IID |
resource_state_event_id |
integer | 예 | 상태 이벤트의 ID |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/resource_state_events/120"
응답 예시:
{
"id": 120,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-21T14:38:20.077Z",
"resource_type": "MergeRequest",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "closed"
}
에픽#
Epics REST API는 GitLab 17.0에서 더 이상 사용되지 않으며 API v5에서 제거될 예정입니다. GitLab 17.4부터 18.0 까지는 새로운 에픽 화면이 활성화된 경우에, GitLab 18.1 이상에서는 항상 Work Items API를 대신 사용합니다. 자세한 내용은 에픽 API를 작업 항목으로 마이그레이션을 참고합니다. 이 변경은 브레이킹 체인지입니다.
그룹 에픽 상태 이벤트 조회#
에픽 하나의 모든 상태 이벤트를 조회합니다.
GET /groups/:id/epics/:epic_id/resource_state_events
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로 입니다. |
epic_id |
integer | 예 | 에픽의 ID 입니다. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/5/epics/11/resource_state_events"
응답 예시:
[
{
"id": 142,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-20T13:38:20.077Z",
"resource_type": "Epic",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "opened"
},
{
"id": 143,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-21T14:38:20.077Z",
"resource_type": "Epic",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "closed"
}
]
단일 에픽 상태 이벤트 조회#
에픽 상태 이벤트 하나를 조회합니다.
GET /groups/:id/epics/:epic_id/resource_state_events/:resource_state_event_id
파라미터:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로 입니다. |
epic_id |
integer | 예 | 에픽의 ID 입니다. |
resource_state_event_id |
integer | 예 | 상태 이벤트의 ID 입니다. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/5/epics/11/resource_state_events/143"
응답 예시:
{
"id": 143,
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://gitlab.example.com/root"
},
"created_at": "2018-08-21T14:38:20.077Z",
"resource_type": "Epic",
"resource_id": 11,
"source_commit": null,
"source_merge_request_id": null,
"state": "closed"
}