プルミラーリング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 | 文字列 | ミラー更新プロセスのステータス。 |
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"