머지 트레인 API
Offering: GitLab.com, Self-managed, GitLab Dedicated
모든 머지 트레인을 위한 API 호출은 최소한 개발자 역할로 인증되어야 합니다.
사용자가 프로젝트의 멤버가 아닌 경우, 프로젝트가 비공개이면 해당 프로젝트에 대한 GET
요청은 404
상태 코드를 반환합니다.
프로젝트에 대해 머지 트레인이 사용 불가능한 경우, 403
상태 코드가 반환됩니다.
머지 트레인 API 페이지 매김
기본적으로, GET
요청은 20개의 결과를 한 번에 반환합니다. API 결과는 페이지 매김되어 있습니다.
자세한 정보는 페이지 매김을 참조하십시오.
프로젝트에 대한 머지 트레인 목록
요청된 프로젝트의 모든 머지 트레인을 가져옵니다:
GET /projects/:id/merge_trains
GET /projects/:id/merge_trains?scope=complete
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
scope |
문자열 | 아니오 | 주어진 범위로 필터링된 머지 트레인을 반환합니다. 사용 가능한 범위는 active (병합 예정) 및 complete (병합 완료)입니다. |
sort |
문자열 | 아니오 |
asc 또는 desc 순서로 정렬된 머지 트레인을 반환합니다. 기본값: 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": "테스트 MR 1580978354",
"description": "",
"state": "병합됨",
"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": "관리자",
"username": "root",
"state": "활성",
"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": "성공",
"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_at": "2020-02-06T08:40:57.719Z",
"duration": 70
}
]
병합 기차에서 병합 요청 나열
요청된 대상 브랜치에 추가된 모든 병합 요청을 가져옵니다.
GET /projects/:id/merge_trains/:target_branch
지원되는 속성:
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
target_branch |
문자열 | 예 | 병합 기차의 대상 브랜치입니다. |
scope |
문자열 | 아니오 | 주어진 범위로 필터링된 Merge Trains를 반환합니다. 사용 가능한 범위는 active (병합 예정)와 complete (병합 완료)입니다. |
sort |
문자열 | 아니오 |
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": "내 제목 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 |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로입니다. |
merge_request_iid |
정수 | 예 | 병합 요청의 내부 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": "내 제목 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 |
정수/문자열 | 예 | 프로젝트의 ID 또는 URL-인코딩된 경로입니다. |
merge_request_iid |
정수 | 예 | 병합 요청의 내부 ID입니다. |
sha |
문자열 | 아니오 | 존재하는 경우, SHA는 소스 브랜치의 HEAD 와 일치해야 하며, 그렇지 않으면 병합이 실패합니다. |
squash |
부울 | 아니오 | true인 경우, 커밋이 병합 시 단일 커밋으로 압축됩니다. |
when_pipeline_succeeds |
부울 | 아니오 | 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": "내 제목 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
}
]