InfoGrab Docs

머지 트레인 API

요약

이 API를 사용하여 머지 트레인과 상호작용합니다. 모든 머지 트레인 엔드포인트는 page 및 per_page 매개변수를 사용하는 오프셋 기반 페이지네이션을 지원합니다. 지정된 프로젝트의 모든 머지 트레인을 나열합니다.

이 API를 사용하여 머지 트레인과 상호작용합니다.

사전 조건:

  • Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

모든 머지 트레인 엔드포인트는 pageper_page 매개변수를 사용하는 오프셋 기반 페이지네이션을 지원합니다.

프로젝트의 모든 머지 트레인 목록 조회#

지정된 프로젝트의 모든 머지 트레인을 나열합니다.

GET /projects/:id/merge_trains

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
scope 문자열 아니요 지정된 범위로 필터링된 머지 트레인 반환. 사용 가능한 범위: active(병합 예정) 및 complete(병합 완료).
sort 문자열 아니요 asc 또는 desc 순으로 정렬된 머지 트레인 반환. 기본값: desc.

성공하면 200 OK와 다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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
  }
]

머지 트레인의 모든 머지 리퀘스트 목록 조회#

대상 브랜치의 머지 트레인에 있는 모든 머지 리퀘스트를 나열합니다.

GET /projects/:id/merge_trains/:target_branch

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
target_branch 문자열 머지 트레인의 대상 브랜치.
scope 문자열 아니요 지정된 범위로 필터링된 머지 트레인 반환. 사용 가능한 범위: active(병합 예정) 및 complete(병합 완료).
sort 문자열 아니요 asc 또는 desc 순으로 정렬된 머지 트레인 반환. 기본값: desc.

성공하면 200 OK와 다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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&d=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.

성공하면 200 OK와 다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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&d=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.
auto_merge 불리언 아니요 true이면 검사가 통과할 때 머지 리퀘스트가 머지 트레인에 추가됩니다. false이거나 지정되지 않으면 머지 리퀘스트가 직접 머지 트레인에 추가됩니다.
sha 문자열 아니요 지정된 경우 SHA가 소스 브랜치의 HEAD와 일치해야 하며, 그렇지 않으면 병합이 실패합니다.
squash 불리언 아니요 true이면 병합 시 커밋이 단일 커밋으로 스쿼시됩니다.
when_pipeline_succeeds 불리언 아니요 GitLab 17.11에서 더 이상 사용되지 않음. 대신 auto_merge를 사용하세요.

성공하면 다음을 반환합니다:

  • 201 Created - 머지 리퀘스트가 즉시 머지 트레인에 추가된 경우.
  • 202 Accepted - 머지 리퀘스트가 머지 트레인에 추가되도록 예약된 경우.

다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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&d=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
  }
]

머지 트레인 API

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 머지 트레인과 상호작용합니다. 모든 머지 트레인 엔드포인트는 page 및 per_page 매개변수를 사용하는 오프셋 기반 페이지네이션을 지원합니다. 지정된 프로젝트의 모든 머지 트레인을 나열합니다.

이 API를 사용하여 머지 트레인과 상호작용합니다.

사전 조건:

  • Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

모든 머지 트레인 엔드포인트는 pageper_page 매개변수를 사용하는 오프셋 기반 페이지네이션을 지원합니다.

프로젝트의 모든 머지 트레인 목록 조회#

지정된 프로젝트의 모든 머지 트레인을 나열합니다.

GET /projects/:id/merge_trains

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
scope 문자열 아니요 지정된 범위로 필터링된 머지 트레인 반환. 사용 가능한 범위: active(병합 예정) 및 complete(병합 완료).
sort 문자열 아니요 asc 또는 desc 순으로 정렬된 머지 트레인 반환. 기본값: desc.

성공하면 200 OK와 다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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
  }
]

머지 트레인의 모든 머지 리퀘스트 목록 조회#

대상 브랜치의 머지 트레인에 있는 모든 머지 리퀘스트를 나열합니다.

GET /projects/:id/merge_trains/:target_branch

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 프로젝트의 ID 또는 URL 인코딩된 경로.
target_branch 문자열 머지 트레인의 대상 브랜치.
scope 문자열 아니요 지정된 범위로 필터링된 머지 트레인 반환. 사용 가능한 범위: active(병합 예정) 및 complete(병합 완료).
sort 문자열 아니요 asc 또는 desc 순으로 정렬된 머지 트레인 반환. 기본값: desc.

성공하면 200 OK와 다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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&d=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.

성공하면 200 OK와 다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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&d=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.
auto_merge 불리언 아니요 true이면 검사가 통과할 때 머지 리퀘스트가 머지 트레인에 추가됩니다. false이거나 지정되지 않으면 머지 리퀘스트가 직접 머지 트레인에 추가됩니다.
sha 문자열 아니요 지정된 경우 SHA가 소스 브랜치의 HEAD와 일치해야 하며, 그렇지 않으면 병합이 실패합니다.
squash 불리언 아니요 true이면 병합 시 커밋이 단일 커밋으로 스쿼시됩니다.
when_pipeline_succeeds 불리언 아니요 GitLab 17.11에서 더 이상 사용되지 않음. 대신 auto_merge를 사용하세요.

성공하면 다음을 반환합니다:

  • 201 Created - 머지 리퀘스트가 즉시 머지 트레인에 추가된 경우.
  • 202 Accepted - 머지 리퀘스트가 머지 트레인에 추가되도록 예약된 경우.

다음 응답 속성이 반환됩니다:

속성 유형 설명
created_at 날짜시간 머지 트레인이 생성된 타임스탬프.
duration 정수 머지 트레인에 소요된 시간(초), 완료되지 않은 경우 null.
id 정수 머지 트레인의 ID.
merged_at 날짜시간 머지 리퀘스트가 병합된 타임스탬프, 병합되지 않은 경우 null.
merge_request 객체 머지 리퀘스트 세부 정보.
merge_request.created_at 날짜시간 머지 리퀘스트가 생성된 타임스탬프.
merge_request.description 문자열 머지 리퀘스트의 설명.
merge_request.id 정수 머지 리퀘스트의 ID.
merge_request.iid 정수 머지 리퀘스트의 내부 ID.
merge_request.project_id 정수 머지 리퀘스트를 포함하는 프로젝트의 ID.
merge_request.state 문자열 머지 리퀘스트의 상태.
merge_request.title 문자열 머지 리퀘스트의 제목.
merge_request.updated_at 날짜시간 머지 리퀘스트가 마지막으로 업데이트된 타임스탬프.
merge_request.web_url 문자열 머지 리퀘스트의 웹 URL.
pipeline 객체 파이프라인 세부 정보, 연결된 파이프라인이 없으면 null.
pipeline.created_at 날짜시간 파이프라인이 생성된 타임스탬프.
pipeline.id 정수 파이프라인의 ID.
pipeline.iid 정수 파이프라인의 내부 ID.
pipeline.project_id 정수 파이프라인을 포함하는 프로젝트의 ID.
pipeline.ref 문자열 파이프라인의 Git 참조.
pipeline.sha 문자열 파이프라인을 트리거한 커밋의 SHA.
pipeline.source 문자열 파이프라인 트리거의 소스.
pipeline.status 문자열 파이프라인의 상태.
pipeline.updated_at 날짜시간 파이프라인이 마지막으로 업데이트된 타임스탬프.
pipeline.web_url 문자열 파이프라인의 웹 URL.
status 문자열 머지 트레인에서 머지 리퀘스트의 상태. 활성 머지 트레인에 가능한 값: idle, fresh, stale. 완료된 머지 트레인에 가능한 값: merging, merged, skip_merged.
target_branch 문자열 대상 브랜치의 이름.
updated_at 날짜시간 머지 트레인이 마지막으로 업데이트된 타임스탬프.
user 객체 머지 트레인에 머지 리퀘스트를 추가한 사용자.
user.avatar_url 문자열 사용자의 아바타 URL.
user.id 정수 사용자의 ID.
user.name 문자열 사용자의 이름.
user.state 문자열 사용자 계정의 상태.
user.username 문자열 사용자의 사용자명.
user.web_url 문자열 사용자 프로필의 웹 URL.

요청 예시:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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&d=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
  }
]