マージ列車API
マージトレインのAPIコールはすべて、少なくとも開発者ロールでの認証が必要です。
ユーザーがプロジェクトのメンバーではなく、プロジェクトが非公開である場合、そのプロジェクトに対するGET
リクエストは404
ステータスコードを返します。
プロジェクトでマージトレインが利用できない場合、403
ステータスコードが返されます。
マージトレイン API のページネーション
デフォルトでは、APIの結果はページ分割されているため、GET
リクエストは一度に20件の結果を返します。
ページ分割についての詳細はこちらをご覧ください。
プロジェクトのマージ列車リスト
リクエストされたプロジェクトのすべてのマージトレインを取得します:
GET /projects/:id/merge_trains
GET /projects/:id/merge_trains?scope=complete
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数/文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
scope | 文字列です。 | なし | 指定されたスコープでフィルタリングされたマージ列車を返します。使用可能なスコープはactive (マージ予定) およびcomplete (マージ済み) です。 |
sort | 文字列です。 | なし |
asc またはdesc 順序で desc ソートされたマージ列車を返します。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": "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 ソートされたマージ列車を返します。desc デフォルト: . 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 | 整数/文字列 | はい | プロジェクトの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": "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 | 整数/文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
merge_request_iid | 整数。 | はい | マージリクエストの内部ID。 |
when_pipeline_succeeds | boolean | なし | true の場合、パイプラインが成功すると、マージリクエストはマージトレインに追加されます。false または未指定の場合、マージリクエストはマージトレインに直接追加されます。 |
sha | 文字列です。 | なし | 存在する場合、SHA はソースブランチのHEAD と一致しなければなりません。一致しない場合、マージは失敗します。 |
squash | boolean | なし | trueを指定すると、マージ時にコミットをひとつにまとめます。 |
リクエストの例
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
}
]