グループのインポート/エクスポートAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、グループ構造を移行する。このAPIをプロジェクトインポート・エクスポートAPIとともに使用すると、プロジェクトのイシューとグループエピック間の接続など、グループレベルの関係を保持できます。
グループのエクスポートには、以下が含まれます:
- グループマイルストーン
- グループボード
- グループラベル
- グループバッジ
- グループメンバー
- グループWiki(PremiumおよびUltimateプランのみ)
- サブグループ。各サブグループには、リスト内の以前のすべてのデータが含まれます。
インポートされたプロジェクトからグループレベルの関係を保持するには、最初にグループのエクスポートとインポートを実行する必要があります。これにより、目的のグループ構造にプロジェクトのエクスポートをインポートできます。
既知の問題により、グループを親グループにインポートしない限り、インポートされたグループの表示レベルはprivateになります。デフォルトでは、グループを親グループにインポートすると、サブグループは親と同じ表示レベルを継承します。
インポートされたグループのメンバーリストとそれぞれの権限を保持するには、これらのグループのユーザーをレビューしてください。目的のグループをインポートする前に、これらのユーザーが存在することを確認してください。
前提要件
- グループインポート・エクスポートAPIの前提条件については、エクスポートファイルをアップロードしてグループを移行するための前提条件を参照してください。
新しいエクスポートのスケジュール
新しいグループエクスポートを開始します。
POST /groups/:id/export| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | グループのID。 |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/export"{
"message": "202 Accepted"
}エクスポートのダウンロード
完了したエクスポートをダウンロードします。
GET /groups/:id/export/download| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | グループのID。 |
group=1
token=secret
curl --request GET \
--header "PRIVATE-TOKEN: ${token}" \
--output download_group_${group}.tar.gz \
--url "https://gitlab.example.com/api/v4/groups/${group}/export/download"ls *export.tar.gz
2020-12-05_22-11-148_namespace_export.tar.gzグループのエクスポートに費やす時間は、グループのサイズによって異なる場合があります。このエンドポイントは、次のいずれかを返します:
- エクスポートされたアーカイブ(利用可能な場合)
- 404メッセージ
ファイルをインポート
インポートするファイルの最大サイズは、GitLabセルフマネージドの管理者が設定できます(デフォルトは0(無制限))。管理者は、インポートするファイルの最大サイズを次のいずれかの方法で変更できます:
- 管理者エリアで操作する。
- アプリケーション設定APIの
max_import_sizeオプションを使用する。
GitLab.comのインポートファイルの最大サイズについては、アカウントと制限設定を参照してください。
POST /groups/import| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
file | 文字列 | はい | アップロードするファイル。 |
name | 文字列 | はい | インポートするグループの名前。 |
path | 文字列 | はい | 新しいグループの名前とパス。 |
parent_id | 整数 | いいえ | グループのインポート先の親グループのID。指定されていない場合、現在のユーザーのネームスペースにデフォルト設定されます。 |
ファイルシステムからファイルをアップロードするには、--form引数を使用します。これにより、cURLはヘッダーContent-Type: multipart/form-dataを使用してデータを送信します。file=パラメータは、ファイルシステムのファイルを指しており、先頭に@を付ける必要があります。例:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--form "name=imported-group" \
--form "path=imported-group" \
--form "file=@/path/to/file" \
--url "https://gitlab.example.com/api/v4/groups/import"