ドキュメントに関する現在のご利用体験についてお聞かせください。アンケートにご協力ください。
グループリポジトリストレージ移動API
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、グループリポジトリストレージの移動を管理します。このAPIは、例えば、Gitaly Cluster (Praefect)へ移行する 、またはグループWikiを移行するのに役立ちます。このAPIは、グループ内のプロジェクトリポジトリストレージを管理しません。プロジェクトの移動をスケジュールするには、プロジェクトリポジトリストレージ移動APIを使用します。
GitLabがグループリポジトリストレージの移動を処理する際に、さまざまな状態を移行します。stateの値は次のとおりです:
initial: レコードは作成されましたが、バックグラウンドジョブはまだスケジュールされていません。scheduled: バックグラウンドジョブがスケジュールされました。started: グループリポジトリストレージがターゲットストレージにコピーされています。replicated: グループが移動されました。failed: グループリポジトリストレージのコピーに失敗したか、チェックサムが一致しませんでした。finished: グループは移動され、ソーストレージ上のリポジトリストレージは削除されました。cleanup failed: グループは移動されましたが、ソーストレージ上のリポジトリストレージを削除できませんでした。
データの一貫性を確保するため、GitLabは移動期間中、グループを一時的な読み取り専用状態にします。この間、ユーザーが新しいコミットをプッシュすると、このメッセージが表示されます:
The repository is temporarily read-only. Please try again later.このAPIを使用するには、管理者として認証する必要があります。
他の種類のリポジトリストレージを移動するためのAPIも利用できます:
すべてのグループリポジトリストレージ移動を一覧表示
インスタンスのすべてのグループリポジトリストレージ移動を一覧表示します。
GET /group_repository_storage_movesデフォルトでは、GETリクエストは一度に20件の結果を返します。これは、APIの結果がページ分割されているためです。
リクエスト例:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/group_repository_storage_moves"レスポンス例:
[
{
"id": 1,
"created_at": "2020-05-07T04:27:17.234Z",
"state": "scheduled",
"source_storage_name": "default",
"destination_storage_name": "storage2",
"group": {
"id": 283,
"web_url": "https://gitlab.example.com/groups/testgroup",
"name": "testgroup"
}
}
]グループのすべてのリポジトリストレージ移動を一覧表示
指定されたグループのすべてのリポジトリストレージ移動を一覧表示します。
GET /groups/:group_id/repository_storage_movesデフォルトでは、GETリクエストは一度に20件の結果を返します。これは、APIの結果がページ分割されているためです。
サポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
group_id | 整数 | はい | グループのID。 |
リクエスト例:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/repository_storage_moves"レスポンス例:
[
{
"id": 1