Group placeholder reassignments API
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Version history
-
Introduced in GitLab 17.10 with a flag named
importer_user_mapping_reassignment_csv. Enabled by default. -
Generally available in GitLab 18.0. Feature flag
importer_user_mapping_reassignment_csvremoved. - Reassigning contributions to a personal namespace owner when importing to a personal namespace introduced in GitLab 18.3 with a flag named
user_mapping_to_personal_namespace_owner. Disabled by default. - Reassigning contributions to a personal namespace owner when importing to a personal namespace generally available in GitLab 18.6. Feature flag
user_mapping_to_personal_namespace_ownerremoved.
The availability of this feature is controlled by a feature flag. For more information, see the history.
Use this API to reassign placeholder users in bulk.
Prerequisites:
- You must have the Owner role for the group.
User contribution mapping is not supported when you import projects to a personal namespace. When you import to a personal namespace, all contributions are assigned to the personal namespace owner and they cannot be reassigned.
Download the CSV file
Download a CSV file of pending reassignments.
GET /groups/:id/placeholder_reassignments
Supported attributes:
| Attribute | Type | Required | Description |
|---|---|---|---|
id |
integer or string | yes | ID of the group or URL-encoded path of the group. |
Example request:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/2/placeholder_reassignments"
Example response:
Source host,Import type,Source user identifier,Source user name,Source username,GitLab username,GitLab public email
http://gitlab.example,gitlab_migration,11,Bob,bob,"",""
http://gitlab.example,gitlab_migration,9,Alice,alice,"",""
Reassign placeholders
Complete the CSV file and upload it to reassign placeholder users.
POST /groups/:id/placeholder_reassignments
Supported attributes:
| Attribute | Type | Required | Description |
|---|---|---|---|
id |
integer or string | yes | ID of the group or URL-encoded path of the group. |
Example request:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--form "file=@placeholder_reassignments_for_group_2_1741253695.csv" \
--url "http://gdk.test:3000/api/v4/groups/2/placeholder_reassignments"
Example response:
{"message":"The file is being processed and you will receive an email when completed."}