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

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

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

このAPIを使用して、グループの構造を移行できます。このAPIをプロジェクトインポートおよびエクスポートAPIと組み合わせて使用すると、プロジェクトイシューとグループエピック間の関連性など、グループレベルの関連性を保持できます。

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

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

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

イシュー405168のため、インポートされたグループは、親グループにインポートしない限り、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 Self-Managedの管理者によって設定できます(デフォルトは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"