正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

プルミラーリング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ブール値またはnulltrueの場合、保護ブランチのみがミラーリングされます。設定されていない場合、値は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の場合、tokenapiスコープが有効になっているパーソナルアクセストークンです。

サポートされている属性は以下のとおりです:

属性必須説明
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"