Improved Gitlab->Gitea Migration Tool

Hi everybody, this is my first time here hope it’s a good one. I am a longtime Gitlab hoster and Gitea admirer who has unfortunately not been able to migrate before now. Recently I got the courage to take the plunge and switch, but when looking for migration tools I found various which were mostly not adequate for what I needed, for one reason or another. So, I wrote my own migration tool in Go based on an older one in Python that I couldn’t quite figure out how to fix.

It offers very similar functionality to the migrate.py script found on this instance: kawaiipunk/gitlab-to-gitea - gitlab-to-gitea - Git with solidaritea with some improvements, including migration state tracking, username normalization, placeholder user registration, and better configuration(not hard-coded). Additionally, a handful of tools that were helpful to me in the migration are also included. unmigrate eliminates all content of a Gitea instance except the administrators. forkfix reaches into an sqlite database to establish a fork relationship between 2 repositories. Both were essential to our migration. I chose to keep the code on Github to keep from depending on one of the services undergoing migration to host it.

I’m looking forward to how much less work I expect hosting Gitea to be, compared to Gitlab. There are a few other cool things related to I2P’s Gitlab->Gitea migration in the go-i2p namespace as well. I’ll post about them later in another thread.

:slight_smile:

I’ll just wait for staff because this was clearly not spam.