A Better Gitlab Migration

I’ve got a large personal Gitlab server that I’m moving over to Gitea. I’ve got a bunch of migration infrastructure sketched in and mostly working for my needs. I’m using the Gitlab and Gitea web APIs to do the migration.

Is there any sort of low-level interface to Gitea database? Using the API calls throws away all of the dates and timestamps of the history (issues, etc.). If I could read the Gitlab API and then write to the Gitea database directly (ideally through a golang persistence API or similar), then I could preserve a lot of that temporal data.

Might also be useful for other types of future migrations if there were an approach here. I haven’t dug into the Gitea codebase yet to investigate. I wanted to see if anyone had any thoughts here first.

I’m an experienced golang developer and would be happy to make my Gitlab migration tooling available if I get it to a useful place.

1 Like

It’s embarassing, but when I started working on this migration, I hadn’t yet found the “+ Migration” tools in the top menu bar in Gitea.

Other than some issues with colliding primary keys on Gitlab MRs/Issues (gitlab migrate mergerequests+issues fail · Issue #13884 · go-gitea/gitea · GitHub), this is working really well for me.

Fortunately, for the stuff that I’m migrating, keeping the Gitlab MRs is not super important.

1 Like