Direct transfer group imports don't map MRs and Epics correctly when user memberships aren't direct.
Summary
In a self-managed instance, Group A has Project A. User X is a member of Group B. Group B is given access to Group A. User X creates MRs and issues in Project A via the membership in Group B.
When direct transfer is used by user User Z to import Group A from the self-managed instance to SaaS, the MRs and issues are mapped to the importer (User Z) and not the user that made the contributions. User X exists on SaaS and has a public email on the self-managed instance that matches the one on their SaaS account.
This doesn't happen when User X makes contributions to Project A as a direct member of Group A.
Steps to reproduce
- Create a Group A.
- Create a Project A in Group A.
- Create a Group B.
- Add a user (User X) to Group B. Ensure a public email (on their account in the self-managed instance) that matches the user's email on their GitLab SaaS account, is set.
- Add Group B as a member to Group A.
- User X creates MRs and issues in Project A.
- User Z imports Group A to GitLab.com via direct transfer.
Example Project
What is the current bug behavior?
The MRs and issues created by User X in Project A are shown as belonging (author, assignee, comments) to the importer, User Z.
What is the expected correct behavior?
The MRs and issues should be correctly mapped to the user on GitLab.com. This happens correctly with commits.
Relevant logs and/or screenshots
Output of checks
This bug happens on GitLab.com
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)