stage | group | info |
---|---|---|
Manage |
Import and Integrate |
To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments |
- Introduced in GitLab 14.4 behind the
bulk_import
feature flag, disabled by default.- New application setting
bulk_import_enabled
introduced in GitLab 15.8.bulk_import
feature flag removed.
The project relations export API partially exports a project's structure as separate files for each top-level relation (for example, milestones, issues, and labels).
The project relations export API is primarily used in group migration can't be used with the project import and export API.
Start a new project relations export:
POST /projects/:id/export_relations
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | ID of the project owned by the authenticated user. |
batched |
boolean | no | Whether to export in batches. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/export_relations"
{
"message": "202 Accepted"
}
View the status of the relations export:
GET /projects/:id/export_relations/status
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | ID of the project owned by the authenticated user. |
relation |
string | no | Name of the project top-level relation to view. |
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/projects/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": "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
}
]
Download the finished relations export:
GET /projects/:id/export_relations/download
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer/string | yes | ID of the project owned by the authenticated user. |
relation |
string | yes | Name of the project top-level relation to download. |
batched |
boolean | no | Whether the export is batched. |
batch_number |
integer | no | Number of export batch to download. |
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