グループ関係エクスポートAPI

GitLab 13.12 で導入されました

グループリレーションエクスポートAPIは、グループの構造をトップレベルのリレーション(マイルストーン、ボード、ラベルなど)ごとに別々のファイルとして部分的にエクスポートします。

グループ関係エクスポートAPIは、主に直接転送によるグループマイグレーションで使用され、グループインポートおよびエクスポートAPIと一緒に使用することはできません。

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

新しいグループ関係のエクスポートを開始します:

POST /groups/:id/export_relations
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのID。
batchedbooleanいいえバッチでエクスポートするかどうか。
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/export_relations"
{
  "message": "202 Accepted"
}

エクスポートステータス

リレーションシップのエクスポート状況を表示します:

GET /groups/:id/export_relations/status
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのID。
relation文字列です。いいえ表示するプロジェクトのトップレベル関係の名前。
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/1/export_relations/status"

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

  • 0:started
  • 1:finished
  • -1:failed

  • 0 -started
  • 1 -finished
  • -1 -failed
[
  {
    "relation": "badges",
    "status": 1,
    "error": null,
    "updated_at": "2021-05-04T11:25:20.423Z",
    "batched": true,
    "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
  }
]

エクスポート・ダウンロード

完成した関係エクスポートをダウンロードします:

GET /groups/:id/export_relations/download
属性種類必須説明
id整数/文字列yes認証ユーザーが所有するグループのID。
relation文字列です。yesダウンロードするグループトップレベル関係の名前。
batchedbooleanいいえエクスポートをバッチ化するかどうか。
batch_number整数。いいえダウンロードするエクスポートバッチの数。
curl --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