群组导入和导出 API
Tier: 基础版,专业版,旗舰版
Offering: JihuLab.com,私有化部署
使用此 API 来迁移群组结构。 当与项目导入和导出 API 一起使用时,你可以保留群组级别的关系,例如项目议题与群组史诗之间的关联。
群组导出包括以下内容:
- 群组里程碑
- 群组议题板
- 群组标记
- 群组徽章
- 群组成员
- 群组事件
- 群组 wiki(仅专业版和旗舰版)
- 子群组。每个子群组包括列表中的所有先前数据。
为了保留已导入项目的群组级别关系,你应该先运行群组导出和导入。这样,你可以将项目导出导入到所需的群组结构中。
为了保留导入群组的成员列表及其各自的权限,请检查这些群组中的用户。在导入所需的群组之前,请确保这些用户已存在。
创建群组导出
为指定群组创建群组导出。
plaintextPOST /groups/:id/export
| 属性 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| id | Integer 或 string | 是 | 群组的 ID。 |
shellcurl --request POST \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "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 3 4curl --request GET \ 5 --header "PRIVATE-TOKEN: ${token}" \ 6 --output download_group_${group}.tar.gz \ 7 --url "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 消息
创建群组导入
通过上传文件创建群组导入。
在私有化部署实例上,管理员可以设置最大导入文件大小(默认为 0(无限制))。 作为管理员,你可以通过以下方式修改最大导入文件大小:
- 在管理员区域中。
- 通过使用应用程序设置 API 中的 max_import_size 选项。
有关 JihuLab.com 上最大导入文件大小的信息,请参阅账户和限制设置。
plaintextPOST /groups/import
| 属性 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| file | String | 是 | 要上传的文件。 |
| name | String | 是 | 要导入的群组的名称。 |
| path | String | 是 | 新群组的名称和路径。 |
| parent_id | Integer | 否 | 将群组导入到的父群组的 ID。如果未提供,则默认为当前用户的命名空间。 |
要从你的文件系统上传文件,请使用 --form 参数。这会使 cURL 使用 Content-Type: multipart/form-data 标头发送数据。 file= 参数必须指向文件系统上的文件,且前面 带有 @。例如:
shell1curl --request POST \ 2 --header "PRIVATE-TOKEN: <your_access_token>" \ 3 --form "name=imported-group" \ 4 --form "path=imported-group" \ 5 --form "file=@/path/to/file" \ 6 --url "https://gitlab.example.com/api/v4/groups/import"