项目关系导出 API

引入于极狐GitLab 14.4,在 bulk_import 功能标志后,默认禁用。

在 JiHuLab.com 上,此功能可用。 在私有化部署的的极狐GitLab 上,默认情况下此功能可用。要隐藏该功能,请让管理员禁用 bulk_import 标志。 该功能尚未准备好用于生产用途。它仍处于试验阶段,未来可能会改变。

使用项目关系导出 API,您可以部分导出项目结构。这个 API 类似于项目导出,但它将每个顶级关系(例如,里程碑/看板/标记)导出为单独的文件,而不是档案。 项目关系导出 API 主要用于群组迁移以支持群组项目导入。

计划新导出

开启新项目关系导出:

POST /projects/:id/export_relations
参数 类型 是否必需 描述
id integer/string yes 授权用户拥有的项目的 ID
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 integer/string yes 授权用户拥有的项目的 ID
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/export_relations/status"

状态可以是:

  • 0started
  • 1finished
  • -1failed

  • 0 - started
  • 1 - finished
  • -1 - failed
[
  {
    "relation": "project_badges",
    "status": 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"
  }
]

导出下载

下载完成的关系导出:

GET /projects/:id/export_relations/download
参数 类型 是否必需 描述
id integer/string yes 授权用户拥有的项目的 ID
relation string yes 要下载的项目顶级关系的名称
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