グループ Import/Export API

GitLab 12.8で導入されました

グループのインポート/エクスポートを使用すると、グループ構造をエクスポートし、新しい場所にインポートすることができます。プロジェクトのインポート/エクスポートと一緒に使用すると、プロジェクトイシューとグループエピック間の接続など、グループレベルのリレーションシップの接続を保持することができます。

グループ輸出は以下の通り:

  • グループのマイルストーン
  • グループボード
  • グループラベル
  • グループバッジ
  • グループメンバー
  • サブグループ:各サブグループには上記のすべてのデータが含まれます。

新規輸出のスケジュール

新しいグループExportを開始します。

POST /groups/:id/export
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するグループのID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/export"
{
  "message": "202 Accepted"
}

輸出ダウンロード

完成したexporterをダウンロードしてください。

GET /groups/:id/export/download
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するグループのID
curl --header "PRIVATE-TOKEN: <your_access_token>" --remote-header-name --remote-name "https://gitlab.example.com/api/v4/groups/1/export/download"
ls *export.tar.gz
2020-12-05_22-11-148_namespace_export.tar.gz

グループのエクスポートにかかる時間は、グループのサイズによって異なる場合があります。 このエンドポイントは、以下のいずれかを返します:

  • エクスポートされたアーカイブ(利用可能な場合)
  • 404メッセージ

ファイルのインポート

POST /groups/import
属性 タイプ 必須 説明
name はい インポートするグループ名
path はい 新しいグループの名前とパス
file はい アップロードするファイル
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" "https://gitlab.example.com/api/v4/groups/import"
注:最大インポートファイルサイズは管理者が設定でき、デフォルトは50MBです。 管理者として、最大インポートファイルサイズを変更することができます。これを行うには、アプリケーション設定APIまたは管理者UIのmax_import_size オプションを使用します。

重要な注意事項

以下に注意してください。

  • インポートしたプロジェクトのグループレベルのリレーションシップを維持するには、まずグループのインポート/エクスポートを実行し、目的のグループ構造にプロジェクトをインポートできるようにします。
  • インポートされたグループは、親グループにインポートされない限り、private の可視レベルが与えられます。
  • 親グループにインポートされた場合、特別な制限がない限り、サブグループも同様のレベルの可視性を継承します。
  • インポートしたグループのメンバー リストとそれぞれの権限を保持するには、これらのグループのユーザーをレビュアーします。 必要なグループをインポートする前に、これらのユーザーが存在することを確認してください。