Full migration of Groups/Projects/Repositories from gitlab to github including Issues, Milestones, Labels, PRs, Wiki etc. #191383
Replies: 2 comments
-
|
This is a well-described migration scenario, and you’ve already covered a lot of the hard parts. Let me address each of your points: 1. Attachments in Issues / CommentsYou’re correct that GitHub does not provide a direct API equivalent to GitLab’s attachment handling inside issue bodies. A few practical approaches:
So in practice, most large migrations use a two-step upload + replace strategy with CDN links. 2. Issue-to-Issue Relationships (Horizontal Linking)GitHub does not have a direct equivalent to GitLab’s “Linked items” (non-hierarchical relationships). Available options:
There is currently no native “related issues” API with first-class relationship types like GitLab. 3. Milestones at Organization LevelYou are correct — GitHub milestones are repository-scoped only. Workarounds:
Summary
For large-scale migrations like yours, combining automation scripts + GitHub Projects + CDN-based attachment handling is currently the most practical approach. Hope this helps streamline your migration. |
Beta Was this translation helpful? Give feedback.
-
|
You’re running into a few GitHub model differences here. For attachments: GitHub’s issue APIs cover issues, comments, labels, milestones, dependencies, and issue fields, but there is no documented issue/comment attachment upload endpoint in the REST issues API. File attachment is documented as a web UI flow: drag/drop or attach in the comment box, which uploads the file and inserts an anonymized URL into the text.  So for migration, the practical options are: If you link to the normal repository file page, GitHub won’t render it inline as an image in the issue body. You need normal Markdown image syntax with a direct image URL, and if you use repo files, a permalinked/raw target is the safer choice.  For issue-to-issue relationships: GitHub does have structured relationships now, but they are mainly: Sub-issues are hierarchical, so they do not match your “related but not dependent” case. Dependencies are closer, but still imply dependency semantics rather than a neutral “related to” link. I’m not aware of a first-class horizontal “related issues” relationship equivalent to GitLab’s linked items. The closest native workaround is usually a custom organization issue field plus Projects views, or plain cross-links in the body/comments.  For milestones: GitHub milestones are still repository-scoped, not organization-scoped. The docs describe milestones as tracking issues and PRs in a repository. If you need org-level planning, GitHub’s newer org-level issue fields / Projects are the better fit. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
🏷️ Discussion Type
Question
Body
Hi,
we have to migrate about 20 projects which reside in 5 different groups from gitlab to github. We have implemented a python script which does most of the work. Currently we struggle with the following issues:
How can attachments, mainly images but also documents/emails, that are embedded in the body of gitlab issues/comments be migrated to github, as there seems to be no API in github for that? We have already tried to upload the attachments as assets to the specific repository and change the links within the body of the issues. This basically works, but in the correspoding github Issue the attachment (e.g. image) is not rendered as image. With the pure link to the file in the repo it would work, but we want to have all images to be rendered in the issue/comment body. And further more having hundreds of attachment files for issues in the repo is an unwanted overhead.
In gitlab, Issues can be linked ("Linked items"), also across Groups (Organisations in github). In github there seems to be only a hierarchy linking with Parent/Subitems. But we need linking on a horizontal level like "this Issue is related to one or more other Issues", but they do not depend on each other. Does github has such a functionality and if yes how can these relations be migrated? Simply adding a link to the issue body is not an appropriate solution, as this would have to be done manually for each related issue. So this is not only a migration topic but also important for our future working with github.
Is there really no way to manage Milestones on Organisation-Level?
Cheers,
Harry
Beta Was this translation helpful? Give feedback.
All reactions