- 前提条件
- 新しいグループまたはプロジェクトのマイグレーションの開始
- すべてのグループまたはプロジェクトのマイグレーションを一覧表示します。
- すべてのグループまたはプロジェクトのマイグレーションのエンティティを一覧表示します。
- グループまたはプロジェクトのマイグレーション詳細の取得
- グループまたはプロジェクトのマイグレーションエンティティの一覧表示
- グループまたはプロジェクトのマイグレーションエンティティの詳細を取得します。
ダイレクト転送APIによるグループおよびプロジェクトのマイグレーション
直接転送APIによるグループマイグレーションでは、直接転送によるグループマイグレーションで開始したマイグレーションを開始したり、進捗を確認したりすることができます。
この API を使用したプロジェクトのマイグレーションはベータ版です。この機能は本番環境では使用できません。
前提条件
直接転送APIによるグループマイグレーションの前提条件については、直接転送によるグループマイグレーションの前提条件を参照してください。
新しいグループまたはプロジェクトのマイグレーションの開始
新しいグループやプロジェクトのマイグレーションを開始するには、このエンドポイントを使います。指定します:
-
entities[group_entity]
を指定してグループをマイグレーションします。 -
entities[project_entity]
プロジェクトをマイグレーションします。
POST /bulk_imports
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
configuration | ハッシュ | yes | ソースGitLabインスタンス設定。 |
configuration[url] | 文字列 | yes | ソースGitLabインスタンスURL。 |
configuration[access_token] | 文字列 | yes | ソースGitLabインスタンスへのアクセストークン。 |
entities | 配列 | yes | インポートするエンティティのリスト。 |
entities[source_type] | 文字列 | yes | ソースエンティティのタイプ。有効な値はgroup_entity (GitLab 14.2以降)とproject_entity (GitLab 15.11以降)。 |
entities[source_full_path] | 文字列 | yes | インポートするエンティティのソースフルパス。 |
entities[destination_slug] | 文字列 | yes | エンティティの宛先スラッグ。 |
entities[destination_name] | 文字列 | いいえ | 非推奨:代わりにdestination_slug 。エンティティの宛先スラッグ。 |
entities[destination_namespace] | 文字列 | yes | エンティティの宛先名前空間。 |
entities[migrate_projects] | ブール値 | いいえ | グループのすべてのネストしたプロジェクトもインポートします(source_type がgroup_entity の場合)。デフォルトはtrue です。 |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/bulk_imports" \
--header "Content-Type: application/json" \
--data '{
"configuration": {
"url": "http://gitlab.example/",
"access_token": "access_token"
},
"entities": [
{
"source_full_path": "source/full/path",
"source_type": "group_entity",
"destination_slug": "destination_slug",
"destination_namespace": "destination/namespace/path"
}
]
}'
{ "id": 1, "status": "created", "source_type": "gitlab", "created_at": "2021-06-18T09:45:55.358Z", "updated_at": "2021-06-18T09:46:27.003Z" }
すべてのグループまたはプロジェクトのマイグレーションを一覧表示します。
GET /bulk_imports
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
per_page | 整数。 | いいえ | ページごとに返すレコード数。 |
page | 整数。 | いいえ | 取得するPages。 |
sort | 文字列です。 | いいえ |
asc 、またはdesc 作成日順に desc ソートされたレコードを返しますdesc 。デフォルトは desc
|
status | 文字列です。 | いいえ | インポートステータス。 |
ステータスは以下のいずれかになります:
created
started
finished
failed
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/bulk_imports?per_page=2&page=1"
[
{
"id": 1,
"status": "finished",
"source_type": "gitlab",
"created_at": "2021-06-18T09:45:55.358Z",
"updated_at": "2021-06-18T09:46:27.003Z"
},
{
"id": 2,
"status": "started",
"source_type": "gitlab",
"created_at": "2021-06-18T09:47:36.581Z",
"updated_at": "2021-06-18T09:47:58.286Z"
}
]
すべてのグループまたはプロジェクトのマイグレーションのエンティティを一覧表示します。
GET /bulk_imports/entities
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
per_page | 整数。 | いいえ | ページごとに返すレコード数。 |
page | 整数。 | いいえ | 取得するPages。 |
sort | 文字列です。 | いいえ |
asc 、またはdesc 作成日順に desc ソートされたレコードを返しますdesc 。デフォルトは desc
|
status | 文字列です。 | いいえ | インポートステータス。 |
ステータスは以下のいずれかになります:
created
started
finished
failed
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/bulk_imports/entities?per_page=2&page=1&status=started"
[
{
"id": 1,
"bulk_import_id": 1,
"status": "finished",
"source_full_path": "source_group",
"destination_slug": "destination_slug",
"destination_namespace": "destination_path",
"parent_id": null,
"namespace_id": 1,
"project_id": null,
"created_at": "2021-06-18T09:47:37.390Z",
"updated_at": "2021-06-18T09:47:51.867Z",
"failures": []
},
{
"id": 2,
"bulk_import_id": 2,
"status": "failed",
"source_full_path": "another_group",
"destination_slug": "another_slug",
"destination_namespace": "another_namespace",
"parent_id": null,
"namespace_id": null,
"project_id": null,
"created_at": "2021-06-24T10:40:20.110Z",
"updated_at": "2021-06-24T10:40:46.590Z",
"failures": [
{
"relation": "group",
"step": "extractor",
"exception_message": "Error!",
"exception_class": "Exception",
"correlation_id_value": "dfcf583058ed4508e4c7c617bd7f0edd",
"created_at": "2021-06-24T10:40:46.495Z",
"pipeline_class": "BulkImports::Groups::Pipelines::GroupPipeline",
"pipeline_step": "extractor"
}
]
}
]
グループまたはプロジェクトのマイグレーション詳細の取得
GET /bulk_imports/:id
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/bulk_imports/1"
{
"id": 1,
"status": "finished",
"source_type": "gitlab",
"created_at": "2021-06-18T09:45:55.358Z",
"updated_at": "2021-06-18T09:46:27.003Z"
}
グループまたはプロジェクトのマイグレーションエンティティの一覧表示
GET /bulk_imports/:id/entities
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
per_page | 整数。 | いいえ | ページごとに返すレコード数。 |
page | 整数。 | いいえ | 取得するPages。 |
sort | 文字列です。 | いいえ |
asc 、またはdesc 作成日順に desc ソートされたレコードを返しますdesc 。デフォルトは desc
|
status | 文字列です。 | いいえ | インポートステータス。 |
ステータスは以下のいずれかになります:
created
started
finished
failed
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/bulk_imports/1/entities?per_page=2&page=1&status=finished"
[
{
"id": 1,
"status": "finished",
"source_type": "gitlab",
"created_at": "2021-06-18T09:45:55.358Z",
"updated_at": "2021-06-18T09:46:27.003Z"
}
]
グループまたはプロジェクトのマイグレーションエンティティの詳細を取得します。
GET /bulk_imports/:id/entities/:entity_id
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/bulk_imports/1/entities/2"
{
"id": 1,
"status": "finished",
"source_type": "gitlab",
"created_at": "2021-06-18T09:45:55.358Z",
"updated_at": "2021-06-18T09:46:27.003Z"
}