プロジェクト関係エクスポートAPI

  • GitLab 14.4でbulk_import 機能フラグの後ろに導入され、デフォルトでは無効になっています。
  • 新しいアプリケーション設定bulk_import_enabled がGitLab 15.8で導入されました。bulk_import 機能フラグは削除されました。

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

プロジェクト関係エクスポートAPIは主にグループマイグレーションで使用され、プロジェクトインポート・エクスポートAPIと一緒に使用することはできません。

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

新しいプロジェクト関係のエクスポートを開始します:

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

エクスポートステータス

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

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

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

  • 0 -started
  • 1 -finished
  • -1 -failed
[
  {
    "relation": "project_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 /projects/: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/projects/1/export_relations/download?relation=labels"
ls labels.ndjson.gz
labels.ndjson.gz