- Merge Trains API 페이지네이션
- 프로젝트의 Merge Trains 목록
- Merge Train에 있는 병합 요청 목록
- 병합 요청이 병합 트레인에서의 상태 가져오기
- 병합 요청을 병합 트레인에 추가하기
Merge Trains API
Tier: Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
병합 기차에 대한 모든 API 호출은 적어도 Developer 역할로 인증해야 합니다.
만약 사용자가 프로젝트의 구성원이 아니고 해당 프로젝트가 비공개인 경우, 해당 프로젝트에 대한 GET
요청은 404
상태 코드를 반환합니다.
프로젝트에 대해 Merge Trains를 사용할 수 없는 경우, 403
상태 코드가 반환됩니다.
Merge Trains API 페이지네이션
기본적으로 GET
요청은 페이지 네이션된 API 결과를 한 번에 20개씩 반환합니다.
더 많은 정보는 페이지 네이션을 참조하세요.
프로젝트의 Merge Trains 목록
요청된 프로젝트의 모든 Merge Trains을 가져옵니다:
GET /projects/:id/merge_trains
GET /projects/:id/merge_trains?scope=complete
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL-encoded path. |
scope
| string | No | 주어진 스코프에 따라 필터링된 Merge Trains를 반환합니다. 사용 가능한 스코프는 active (병합 예정) 및 complete (병합된)입니다.
|
sort
| string | No |
asc 또는 desc 순서로 정렬된 Merge Trains을 반환합니다. 기본값: desc .
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/merge_trains"
예시 응답:
[
{
"id": 110,
"merge_request": {
"id": 126,
"iid": 59,
"project_id": 20,
"title": "Test MR 1580978354",
"description": "",
"state": "merged",
"created_at": "2020-02-06T08:39:14.883Z",
"updated_at": "2020-02-06T08:40:57.038Z",
"web_url": "http://local.gitlab.test:8181/root/merge-train-race-condition/-/merge_requests/59"
},
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://local.gitlab.test:8181/root"
},
"pipeline": {
"id": 246,
"sha": "bcc17a8ffd51be1afe45605e714085df28b80b13",
"ref": "refs/merge-requests/59/train",
"status": "success",
"created_at": "2020-02-06T08:40:42.410Z",
"updated_at": "2020-02-06T08:40:46.912Z",
"web_url": "http://local.gitlab.test:8181/root/merge-train-race-condition/pipelines/246"
},
"created_at": "2020-02-06T08:39:47.217Z",
"updated_at": "2020-02-06T08:40:57.720Z",
"target_branch": "feature-1580973432",
"status": "merged",
"merged_at": "2020-02-06T08:40:57.719Z",
"duration": 70
}
]
Merge Train에 있는 병합 요청 목록
요청된 대상 브랜치에 추가된 모든 병합 요청을 가져옵니다.
GET /projects/:id/merge_trains/:target_branch
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL-encoded path. |
target_branch
| string | Yes | 병합 기차의 대상 브랜치. |
scope
| string | No | 주어진 스코프에 따라 필터링된 Merge Trains를 반환합니다. 사용 가능한 스코프는 active (병합 예정) 및 complete (병합된)입니다.
|
sort
| string | No |
asc 또는 desc 순서로 정렬된 Merge Trains을 반환합니다. 기본값: desc .
|
예시 요청:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/597/merge_trains/main"
예시 응답:
[
{
"id": 267,
"merge_request": {
"id": 273,
"iid": 1,
"project_id": 597,
"title": "My title 9",
"description": null,
"state": "opened",
"created_at": "2022-10-31T19:06:05.725Z",
"updated_at": "2022-10-31T19:06:05.725Z",
"web_url": "http://localhost/namespace18/project21/-/merge_requests/1"
},
"user": {
"id": 933,
"username": "user12",
"name": "Sidney Jones31",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/6c8365de387cb3db10ecc7b1880203c4?s=80\u0026d=identicon",
"web_url": "http://localhost/user12"
},
"pipeline": {
"id": 273,
"iid": 1,
"project_id": 598,
"sha": "b83d6e391c22777fca1ed3012fce84f633d7fed0",
"ref": "main",
"status": "pending",
"source": "push",
"created_at": "2022-10-31T19:06:06.231Z",
"updated_at": "2022-10-31T19:06:06.231Z",
"web_url": "http://localhost/namespace19/project22/-/pipelines/273"
},
"created_at": "2022-10-31T19:06:06.237Z",
"updated_at": "2022-10-31T19:06:06.237Z",
"target_branch": "main",
"status": "idle",
"merged_at": null,
"duration": null
}
]
병합 요청이 병합 트레인에서의 상태 가져오기
요청된 병합 요청에 대한 병합 트레인 정보를 가져옵니다.
GET /projects/:id/merge_trains/merge_requests/:merge_request_iid
지원되는 속성:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
merge_request_iid
| integer | Yes | 병합 요청의 내부 ID입니다. |
예시 요청:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/597/merge_trains/merge_requests/1"
예시 응답:
{
"id": 267,
"merge_request": {
"id": 273,
"iid": 1,
"project_id": 597,
"title": "My title 9",
"description": null,
"state": "opened",
"created_at": "2022-10-31T19:06:05.725Z",
"updated_at": "2022-10-31T19:06:05.725Z",
"web_url": "http://localhost/namespace18/project21/-/merge_requests/1"
},
"user": {
"id": 933,
"username": "user12",
"name": "Sidney Jones31",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/6c8365de387cb3db10ecc7b1880203c4?s=80\u0026d=identicon",
"web_url": "http://localhost/user12"
},
"pipeline": {
"id": 273,
"iid": 1,
"project_id": 598,
"sha": "b83d6e391c22777fca1ed3012fce84f633d7fed0",
"ref": "main",
"status": "pending",
"source": "push",
"created_at": "2022-10-31T19:06:06.231Z",
"updated_at": "2022-10-31T19:06:06.231Z",
"web_url": "http://localhost/namespace19/project22/-/pipelines/273"
},
"created_at": "2022-10-31T19:06:06.237Z",
"updated_at":"2022-10-31T19:06:06.237Z",
"target_branch":"main",
"status":"idle",
"merged_at":null,
"duration":null
}
병합 요청을 병합 트레인에 추가하기
병합 트레인에 병합 요청을 추가하여 병합 요청의 대상 브랜치를 대상으로 합니다.
POST /projects/:id/merge_trains/merge_requests/:merge_request_iid
지원되는 속성:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | Yes | 프로젝트의 ID 또는 URL 인코딩된 경로. |
merge_request_iid
| integer | Yes | 병합 요청의 내부 ID입니다. |
sha
| string | No | 존재하는 경우, SHA는 HEAD 의 소스 브랜치와 일치해야하며, 그렇지 않으면 병합에 실패합니다.
|
squash
| boolean | No |
true 인 경우, 커밋이 병합시 하나의 커밋으로 압축됩니다.
|
when_pipeline_succeeds
| boolean | No |
true 이면, 파이프라인이 성공할 때 병합 요청이 병합 트레인에 추가됩니다. false 또는 지정되지 않은 경우, 병합 요청이 직접 병합 트레인에 추가됩니다.
|
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/597/merge_trains/merge_requests/1"
예시 응답:
[
{
"id": 267,
"merge_request": {
"id": 273,
"iid": 1,
"project_id": 597,
"title": "My title 9",
"description": null,
"state": "opened",
"created_at": "2022-10-31T19:06:05.725Z",
"updated_at": "2022-10-31T19:06:05.725Z",
"web_url": "http://localhost/namespace18/project21/-/merge_requests/1"
},
"user": {
"id": 933,
"username": "user12",
"name": "Sidney Jones31",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/6c8365de387cb3db10ecc7b1880203c4?s=80\u0026d=identicon",
"web_url": "http://localhost/user12"
},
"pipeline": {
"id": 273,
"iid": 1,
"project_id": 598,
"sha": "b83d6e391c22777fca1ed3012fce84f633d7fed0",
"ref": "main",
"status": "pending",
"source": "push",
"created_at": "2022-10-31T19:06:06.231Z",
"updated_at": "2022-10-31T19:06:06.231Z",
"web_url": "http://localhost/namespace19/project22/-/pipelines/273"
},
"created_at": "2022-10-31T19:06:06.237Z",
"updated_at":"2022-10-31T19:06:06.237Z",
"target_branch":"main",
"status":"idle",
"merged_at":null,
"duration":null
}
]