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

グループリレーションエクスポートAPI

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

このAPIは、直接転送によるグループ移行中に、宛先インスタンスによってグループ構造を移行するために使用されます。通常、このAPIを自分で使用する必要はありません。

このコンテキストでは、relationはエピックのようなエクスポート可能な項目です。エクスポートされると、リレーションにはラベルなど、リレーションに関連する項目が含まれます。

このAPIを使用するには、GitLabインスタンスが特定の前提条件を満たしている必要があります。

このAPIは、ファイルベースの移行用であるグループインポートおよびエクスポートAPIでは使用できません。

グループの新しいエクスポートをスケジュールする

指定されたグループのリレーションエクスポートをスケジュールします。

POST /groups/:id/export_relations
属性必須説明
id整数または文字列はいグループのID。
batchedブール値いいえバッチでエクスポートするかどうか。
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/export_relations"
{
  "message": "202 Accepted"
}

エクスポートのステータスを取得する

リレーションエクスポートのステータスを取得します。

GET /groups/:id/export_relations/status
属性必須説明
id整数または文字列はいグループのID。
relation文字列いいえ表示するグループトップレベルリレーションの名前。
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/export_relations/status"

ステータスは次のいずれかになります:

  • 0: started
  • 1: finished
  • -1: failed
[
  {
    "relation": "badges",
    "status": 1,
    "error": null,
    "updated_at": "2021-05-04T11:25:20.423Z",
    "batched": true,
    "batches_count": 1,
    "batches": [
      {
        "status": 1,
        "batch_number": 1,
        "objects_count": 1,
        "error": null,
        "updated_at": "2021-05-04T11:25:20.423Z"
      }
    ]
  },
  {
    "relation": "boards",
    "status": 1,
    "error": null,
    "updated_at": "2021-05-04T11:25:20.085Z",
    "batched": false,
    "batches_count": 0
  }
]

エクスポートをダウンロードする

完了したリレーションエクスポートをダウンロードします。

GET /groups/:id/export_relations/download
属性必須説明
id整数または文字列はいグループのID。
relation文字列はいダウンロードするグループトップレベルリレーションの名前。
batchedブール値いいえエクスポートがバッチ処理されているかどうか。
batch_number整数いいえダウンロードするエクスポートバッチの数。
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --remote-header-name \
  --remote-name "https://gitlab.example.com/api/v4/groups/1/export_relations/download?relation=labels"
ls labels.ndjson.gz
labels.ndjson.gz