プルミラーリングAPI
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、プロジェクトのプルミラーリングを管理します。
プロジェクトのプルミラーの詳細を取得します
指定されたプロジェクトのプルミラーの詳細を取得します。
GET /projects/:id/mirror/pullサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
成功した場合、200 OKと次のレスポンス属性を返します:
| 属性 | 型 | 説明 |
|---|---|---|
enabled | ブール値 | trueの場合、ミラーがアクティブになります。 |
id | 整数 | ミラー設定の一意の識別子。 |
last_error | 文字列またはnull | 発生した最新のエラーメッセージ(もしあれば)。エラーが発生しなかった場合はnull。 |
last_successful_update_at | 文字列 | 最後のミラー更新が正常に完了したタイムスタンプ。 |
last_update_at | 文字列 | 最新のミラー更新試行のタイムスタンプ。 |
last_update_started_at | 文字列 | 最後のミラー更新プロセスが開始されたタイムスタンプ。 |
mirror_branch_regex | 文字列またはnull | どのブランチをミラーするかをフィルタリングするための正規表現パターン。nullが未設定の場合。 |
mirror_overwrites_diverged_branches | ブール値 | trueの場合、ミラーリング中に分岐したブランチを上書きします。 |
mirror_trigger_builds | ブール値 | trueの場合、ミラー更新のビルドをトリガーします。 |
only_mirror_protected_branches | ブール値またはnull | trueの場合、保護ブランチのみがミラーされます。設定されていない場合、値はnullです。 |
update_status | 文字列 | ミラー更新プロセスのステータス。使用可能な値: none、scheduled、started、finished、failed、またはcanceled。 |
url | 文字列 | ミラーされたリポジトリのURL。 |
リクエスト例:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"レスポンス例:
{
"id": 101486,
"last_error": null,
"last_successful_update_at": "2020-01-06T17:32:02.823Z",
"last_update_at": "2020-01-06T17:32:02.823Z",
"last_update_started_at": "2020-01-06T17:31:55.864Z",
"update_status": "finished",
"url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
"enabled": true,
"mirror_trigger_builds": true,
"only_mirror_protected_branches": null,
"mirror_overwrites_diverged_branches": false,
"mirror_branch_regex": null
}プロジェクトのプルミラーリング設定の更新
プロジェクトのプルミラーリング設定を更新します。
PUT /projects/:id/mirror/pullサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
auth_password | 文字列 | いいえ | プルミラーするプロジェクトの認証に使用されるパスワード。 |
auth_user | 文字列 | いいえ | プルミラーするプロジェクトの認証に使用されるユーザー名。 |
enabled | ブール値 | いいえ | trueの場合、trueに設定すると、プロジェクトでプルミラーリングが有効になります。 |
mirror_branch_regex | 文字列 | いいえ | 正規表現を含みます。正規表現に一致する名前のブランチのみがミラーされます。only_mirror_protected_branchesを無効にする必要があります。 |
mirror_overwrites_diverged_branches | ブール値 | いいえ | trueの場合、分岐したブランチを上書きします。 |
mirror_trigger_builds | ブール値 | いいえ | trueの場合、ミラー更新のパイプラインをトリガーします。 |
only_mirror_protected_branches | ブール値 | いいえ | trueの場合、保護ブランチのみにミラーリングを制限します。 |
url | 文字列 | いいえ | ミラーされるリモートリポジトリのURL。 |
成功した場合、200 OKと更新されたプルミラー設定を返します。
プルミラーリングを追加するリクエストの例:
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{
"enabled": true,
"url": "https://gitlab.example.com/group/project.git",
"auth_user": "user",
"auth_password": "password"
}' \
--url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"プルミラーリングを削除するリクエストの例:
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "enabled=false" \
--url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"レスポンス例:
{
"id": 101486,
"last_error": null,
"last_successful_update_at": "2020-01-06T17:32:02.823Z",
"last_update_at": "2020-01-06T17:32:02.823Z",
"last_update_started_at": "2020-01-06T17:31:55.864Z",
"update_status": "finished",
"url": "https://gitlab.example.com/group/project.git",
"enabled": true,
"mirror_trigger_builds": false,
"only_mirror_protected_branches": null,
"mirror_overwrites_diverged_branches": false,
"mirror_branch_regex": null
}プロジェクトのプルミラーリングを更新する(非推奨)
この設定オプションはGitLab 17.6で非推奨になり、APIのv5で削除が予定されています。代わりに新しい設定とエンドポイントを使用してください。これは破壊的な変更です。
リモートリポジトリが公開されているか、username:token認証を使用している場合、プロジェクトの作成または更新時にAPIを使用してプルミラーリングを設定します。
HTTPリポジトリが公開されていない場合、認証情報をURLに追加できます。例えば、https://username:token@gitlab.company.com/group/project.git(ここでtokenはapiスコープが有効になっているパーソナルアクセストークンです)。
サポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
import_url | 文字列 | はい | ミラーされるリモートリポジトリのURL(必要に応じてuser:tokenを使用)。 |
mirror | ブール値 | はい | trueの場合、プルミラーリングを有効にします。 |
mirror_branch_regex | 文字列 | いいえ | 正規表現を含みます。正規表現に一致する名前のブランチのみがミラーされます。only_mirror_protected_branchesを無効にする必要があります。 |
mirror_trigger_builds | ブール値 | いいえ | trueの場合、ミラー更新のパイプラインをトリガーします。 |
only_mirror_protected_branches | ブール値 | いいえ | trueの場合、保護ブランチのみにミラーリングを制限します。 |
プルミラーリングを使用してプロジェクトを作成する例:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{
"name": "new_project",
"namespace_id": "1",
"mirror": true,
"import_url": "https://username:token@gitlab.example.com/group/project.git"
}' \
--url "https://gitlab.example.com/api/v4/projects/"プルミラーリングを追加する例:
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "mirror=true&import_url=https://username:token@gitlab.example.com/group/project.git" \
--url "https://gitlab.example.com/api/v4/projects/:id"プルミラーリングを削除する例:
curl --request PUT \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "mirror=false" \
--url "https://gitlab.example.com/api/v4/projects/:id"プロジェクトのプルミラーリングプロセスを開始します
プロジェクトのプルミラーリングプロセスを開始します。
POST /projects/:id/mirror/pullサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
成功した場合、202 Acceptedを返します。
リクエスト例:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"