GitHub Importer - Migrate issue events
## Problem to solve When migrating projects from GitHub to GitLab, the issues are imported 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 issue, check if any of the identified events exist and import them into GitLab. ## Events list | GitHub | ➡️ | GitLab | | ------ | - | ------ | | ![image](/uploads/dbafb164717a33784f0f8f2d11e8935d/image.png) | ➡️ | ![image](/uploads/187fe7eacb501b35c7b0fececb3452ad/image.png) | | ![image](/uploads/c285080a7c2707d2399ef99b661bc973/image.png) | ➡️ | ![image](/uploads/2956b0650bca814e65bc501660288180/image.png) | | ![image](/uploads/898b9c74b92258d21b3725dd8c85e59f/image.png) | ➡️ | ![image](/uploads/ca67c806910bd6c2d1b91e7ae9f607c5/image.png) | | ![image](/uploads/88c0256b5f884ec20aad6d9d4fc47709/image.png) | ➡️ | ![image](/uploads/0981f34257028ebb25fcbfbbfdfb2829/image.png) | | ![image](/uploads/1896a647bf5377704e3615d214f57afb/image.png) | ➡️ | ![image](/uploads/e03ddc6243d592186166075ff49be0ad/image.png) | | ![image](/uploads/a40ac0a14007640cf8211029f1a6edd5/image.png) | ➡️ | ![image](/uploads/b124edb9d7e111b7e9a4b508685f2cba/image.png) | | ![image](/uploads/68dff7d5c7010b399fae3c5a42c01fb3/image.png) | ➡️ | ![image](/uploads/6f50c321ec1b8e6c4a6512348b826878/image.png) | | ![image](/uploads/4eafea9903b8ee127c384c692a9e9fbf/image.png) | ➡️ | ![image](/uploads/da49ab3a990ccc795d57df0fcb1f3890/image.png) | | ![image](/uploads/746a9021c1a212d92706c0a376b1ba80/image.png) | ➡️ | ![image](/uploads/f2d50cee24e39a964c77fddeae9ea4f6/image.png) | | ![image](/uploads/f8c65d3853929ac937539b5bae0b3e3d/image.png) | ➡️ | ![image](/uploads/6e7f0f86ef1a886ee443218e44dda764/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: GitHub Importer - Migrate issue closed/reopened events - https://gitlab.com/gitlab-org/gitlab/-/issues/354234 1. :footprints: GitHub Importer - Migrate issue un/labeled events - https://gitlab.com/gitlab-org/gitlab/-/issues/354235 1. :footprints: GitHub Importer - Migrate issue de/milestoned events - https://gitlab.com/gitlab-org/gitlab/-/issues/354236 1. :footprints: GitHub Importer - Migrate issue cross-referenced events - https://gitlab.com/gitlab-org/gitlab/-/issues/354238 1. :footprints: GitHub Importer - Migrate issue un/assigned events - https://gitlab.com/gitlab-org/gitlab/-/issues/354237 1. :footprints: GitHub Importer - Migrate issue renamed events - https://gitlab.com/gitlab-org/gitlab/-/issues/354239 ## Technical details Per [GitHub API documentation](https://docs.github.com/en/rest/reference/issues#list-issue-events): * we can use **`GET` /repos/{owner}/{repo}/issues/{issue_number}/events** to get a list of events for an issue ## Documentation * [ ] :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