群组导入和导出 API
- Tier: 基础版,专业版,旗舰版
- Offering: JihuLab.com, 私有化部署
使用群组导入和导出 API 来导出群组结构并将其导入到新位置。当您将群组导入和导出 API 与项目导入和导出 API一起使用时,您可以保留与群组级关系的连接,例如项目议题与群组史诗之间的连接。
群组导出的内容包括以下内容:
- 群组里程碑
- 群组看板
- 群组标签
- 群组徽章
- 群组成员
- 群组维基(仅限专业版和旗舰版)
- 子群组。每个子群组包括以上所有数据
为了保留导入项目中的群组级关系,您应该先运行群组导出和导入。这样,您可以将项目导出导入到所需的群组结构中。
由于已知问题,除非您将群组导入到父群组中,否则导入的群组具有“私有”可见性级别。默认情况下,如果您将群组导入到父群组中,子群组将继承与父群组相同的可见性级别。
为了保留导入群组的成员列表及其各自的权限,请查看这些群组中的用户。确保在导入所需群组之前这些用户存在。
前提条件
- 有关群组导入和导出 API 的前提条件信息,请参阅 通过上传导出文件迁移群组的前提条件。
安排新的导出
开始新的群组导出。
plaintextPOST /groups/:id/export
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| id | integer/string | 是 | 群组的 ID |
shellcurl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/export"
json{ "message": "202 Accepted" }
导出下载
下载完成的导出。
plaintextGET /groups/:id/export/download
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| id | integer/string | 是 | 群组的 ID |
shell1group=1 2token=secret 3curl --request GET\ 4 --header "PRIVATE-TOKEN: ${token}" \ 5 --output download_group_${group}.tar.gz \ 6 "https://gitlab.example.com/api/v4/groups/${group}/export/download"
shellls *export.tar.gz 2020-12-05_22-11-148_namespace_export.tar.gz
导出群组所花费的时间可能会因群组大小而异。此端点返回以下内容:
- 导出的档案(当可用时)
- 404 消息
导入文件
极狐GitLab 私有化部署上的管理员可以设置最大导入文件大小(默认为 0(无限制))。作为管理员,您可以通过以下方式修改最大导入文件大小:
- 在管理员区域。
- 通过在应用程序设置 API中使用 max_import_size 选项。
有关 JihuLab.com 上最大导入文件大小的信息,请参阅 账户和限制设置。
plaintextPOST /groups/import
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
| name | string | 是 | 要导入的群组名称 |
| path | string | 是 | 新群组的名称和路径 |
| file | string | 是 | 要上传的文件 |
| parent_id | integer | 否 | 要将群组导入到的父群组的 ID。默认情况下,如果未提供,则为当前用户的命名空间。 |
要从文件系统上传文件,请使用 --form 参数。这会使 cURL 使用头 Content-Type: multipart/form-data 发送数据。file= 参数必须指向文件系统上的文件,并且前面要加上 @。例如:
shellcurl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \ --form "name=imported-group" --form "path=imported-group" \ --form "file=@/path/to/file" "https://gitlab.example.com/api/v4/groups/import"