GitHub Importer - Migrate MR events
Manage:Import ## Problem to solve When migrating projects from GitHub to GitLab, the pull requests are imported as merge requests, including any comments. However, any history/events are not migrated over. This means that, after the migration, the users would not be able to see who added/removed labels, milestones, assignees, etc. For some users this is a dealbreaker that would prevent them from migrating to GitLab. ## Proposed solution During project import from GitHub, for each imported merge request, check if any of the identified events exist and import them into GitLab. ## Events list | GitHub | ➡️ | GitLab | | ------ | - | ------ | | ![image](/uploads/a8fc32f116fc7b3cb5606e9212731d3b/image.png) | ➡️ | ![image](/uploads/ab62402dfa9908e58e6aad9345aaeed6/image.png) | | ![image](/uploads/c9295f04d09c9e96015180d286b7a4ee/image.png) | ➡️ | ![image](/uploads/ab5e348c04bf075516dff7ee34233739/image.png) | | ![image](/uploads/c9293b4f8b96488943fd06b7b11876aa/image.png) | ➡️ | ![image](/uploads/00b217bbf497e98d88eb0184577ed8fe/image.png) | | ![image](/uploads/993920d0b1e2dff4791fb707b5543a6d/image.png) | ➡️ | ![image](/uploads/d1cc0492884a607b42322ea9a8338a1c/image.png) | | ![image](/uploads/8e43556e0448c9beec63d864b341194f/image.png) | ➡️ | ![image](/uploads/1ed182c45f198145abd5052c94480e47/image.png) | | ![image](/uploads/76b5e883e4f1787f6e94815898851f2f/image.png) | ➡️ | ![image](/uploads/1738d17d05b64862cee242d2b81aac32/image.png) | | ![image](/uploads/3cf6297cfb426726bd1b6c44a7c44e2b/image.png) | ➡️ | ![image](/uploads/474be5a28c4ff408341bda452db98eef/image.png) | | ![image](/uploads/bd354a02f4406b30c269895c39b49e86/image.png) | ➡️ | ![image](/uploads/5e264182169a0355d9babd4b9a77a149/image.png) | | ![image](/uploads/b81a48fcfee4dc12690732eaf7090bea/image.png) | ➡️ | ![image](/uploads/010e27dd78c95d19e5b7d54fc87a4162/image.png) | ## Iterations This feature will be delivered in iterations, as each event can be delivered as a separate change. That said, the following iteration plan groups related events to avoid user confusion. 1. :footprints: https://gitlab.com/gitlab-org/gitlab/-/issues/354937+ 1. :footprints: https://gitlab.com/gitlab-org/gitlab/-/issues/354938+ 1. :footprints: https://gitlab.com/gitlab-org/gitlab/-/issues/354940+ 1. :footprints: https://gitlab.com/gitlab-org/gitlab/-/issues/354941+ 1. :footprints: https://gitlab.com/gitlab-org/gitlab/-/issues/354945+ ## Technical details Per [GitHub API documentation](https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#pullrequestevent): The GitHub `event` objects of `type`:`PullRequestEvent` will have the `payload`.`action` fields set to one of these values: * `opened` * **`edited`** * **`closed`** * **`reopened`** * **`assigned`** * **`unassigned`** * **`review_requested`** * **`review_request_removed`** * **`labeled`** * **`unlabeled`** * `synchronize` (**bolded** events will be imported) ## Documentation Following documentation should be updated with the changes implemented in this issue: * [ ] :book: User doc: https://docs.gitlab.com/ee/user/project/import/github.html * [ ] :book: Developer doc: https://docs.gitlab.com/ee/development/github_importer.html
epic