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

グループのインポート/エクスポートAPI

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このAPIを使用して、グループ構造を移行する。このAPIをプロジェクトインポート・エクスポートAPIとともに使用すると、プロジェクトのイシューとグループエピック間の接続など、グループレベルの関係を保持できます。

グループのエクスポートには、以下が含まれます:

  • グループマイルストーン
  • グループボード
  • グループラベル
  • グループバッジ
  • グループメンバー
  • グループWiki(PremiumおよびUltimateプランのみ)
  • サブグループ。各サブグループには、リスト内の以前のすべてのデータが含まれます。

インポートされたプロジェクトからグループレベルの関係を保持するには、最初にグループのエクスポートとインポートを実行する必要があります。これにより、目的のグループ構造にプロジェクトのエクスポートをインポートできます。

既知の問題により、グループを親グループにインポートしない限り、インポートされたグループの表示レベルはprivateになります。デフォルトでは、グループを親グループにインポートすると、サブグループは親と同じ表示レベルを継承します。

インポートされたグループのメンバーリストとそれぞれの権限を保持するには、これらのグループのユーザーをレビューしてください。目的のグループをインポートする前に、これらのユーザーが存在することを確認してください。

前提要件

新しいエクスポートのスケジュール

新しいグループエクスポートを開始します。

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(無制限))。管理者は、インポートするファイルの最大サイズを次のいずれかの方法で変更できます:

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"