Group Relations Export API
Introduced in GitLab 13.12.
With the Group Relations Export API, you can partially export group structure. This API is similar to group export, but it exports each top-level relation (for example, milestones/boards/labels) as a separate file instead of one archive. The group relations export API is primarily used in group migration.
Schedule new export
Start a new group relations export:
POST /groups/:id/export_relations
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer/string | yes | ID of the group owned by the authenticated user. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/export_relations"
{
"message": "202 Accepted"
}
Export status
View the status of the relations export:
GET /groups/:id/export_relations/status
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer/string | yes | ID of the group owned by the authenticated user. |
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/1/export_relations/status"
The status can be one of the following:
-
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"
},
{
"relation": "boards",
"status": 1,
"error": null,
"updated_at": "2021-05-04T11:25:20.085Z"
}
]
Export download
Download the finished relations export:
GET /groups/:id/export_relations/download
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer/string | yes | ID of the group owned by the authenticated user. |
relation
| string | yes | Name of the group top-level relation to download. |
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