Skip to content

Move Direct Transfer project entities creation to a later stage

George Koltsov requested to merge georgekoltsov/dt-fix-inherited-membership into master

What does this MR do and why?

This MR updates Direct Transfer group migration stages and moves ProjectEntitiesPipeline to stage 2 to ensure MembersPipeline (which is stage 1) is executed before we start migrating projects to make sure members of the group are migrated. This is done in order to make sure there are no race conditions when importing members of a group and its projects. A problematic scenario is described in #458834 (closed) where sometimes group members are not yet fully imported while we start to import project members, which results in project members becoming direct members of the project, while they should be inherited from the group.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After

How to set up and validate locally

  1. Create a parent group
  2. Create a subgroup
  3. Add 5 members to the group and set their emails to public
  4. Create a project
  5. Run Direct Transfer of the parent group
  6. Verify migrated subgroup members remain
  7. Verify project members contain inherited membership from the subgroup
Edited by George Koltsov

Merge request reports