Skip to content

Preserve user authorship during bulk imports

George Koltsov requested to merge georgekoltsov/bulk-import-members-mapper into master

What does this MR do?

Implement BulkImport's (https://docs.gitlab.com/ee/user/group/import/) version of Gitlab::ImportExport::MembersMapper that has the same public API in order to:

  1. Preserve user authorship in Ndjson pipelines of Bulk Import (e.g. epics, comments, emojis)
  2. Swap existing members mapper that does not have user authorship preserved with the new one, without introducing any side effects
  3. Only cache source user id if user is found on destination by any email using public email from source.

MembersPipeline caches source_user_id => destination_user_id map in redis in order to use it later on in future import pipelines (e.g. epics). Each pipeline is running in a separate sidekiq job.

Screenshots (strongly suggested)

usermapper

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by George Koltsov

Merge request reports

Loading