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_csv
removed. - 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.
The availability of this feature is controlled by a feature flag. For more information, see the history.
Prerequisites:
- You must have the Owner role for the group.
Use the following endpoints to reassign placeholder users in bulk without using the UI.
User contribution mapping is not supported when you import projects to a personal namespace.
When you import to a personal namespace and the user_mapping_to_personal_namespace_owner
feature flag
is enabled, all contributions are assigned to the personal namespace owner and they cannot be reassigned.
When the user_mapping_to_personal_namespace_owner
feature flag is disabled, all contributions are
assigned to a single non-functional user called Import User
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."}