리소스 상태 이벤트 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 이슈, 머지 리퀘스트, 에픽의 상태 변경 이벤트를 처리합니다. 이 API는 리소스의 초기 상태("create" 또는 "open")를 추적하지 않습니다. 단일 이슈의 모든 상태 이벤트를 나열합니다. 특정 프로젝트 이슈의 단일 상태 이벤트를 조회합니다.
이 API를 사용하여 이슈, 머지 리퀘스트, 에픽의 상태 변경 이벤트를 처리합니다.
이 API는 리소스의 초기 상태("create" 또는 "open")를 추적하지 않습니다. 닫히거나 다시 열리지 않은 리소스의 경우 빈 목록이 반환됩니다.
이슈#
프로젝트 이슈 상태 이벤트 목록 조회#
단일 이슈의 모든 상태 이벤트를 나열합니다.
GET /projects/:id/issues/:issue_iid/resource_state_events
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 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 또는 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 또는 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 또는 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"
}
에픽#
히스토리
- GitLab 15.4에서 도입.
에픽 REST API는 GitLab 17.0에서 Deprecated되었으며 API v5에서 제거될 예정입니다. GitLab 17.4에서 18.0까지 에픽의 새로운 모습이 활성화된 경우 및 GitLab 18.1 이후에는 대신 Work Items API를 사용하세요. 자세한 내용은 에픽 API를 Work Items로 마이그레이션을 참조하세요. 이 변경은 Breaking Change입니다.
그룹 에픽 상태 이벤트 목록 조회#
단일 에픽의 모든 상태 이벤트를 나열합니다.
GET /groups/:id/epics/:epic_id/resource_state_events
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer 또는 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 또는 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"
}
