Skip to content

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."}