I wrote a bit a while back about trying to move from GitHub to Codeberg. I’m happy to report I’m making good progress, and I wanted to write about some of the things I’ve learned so far.
Firstly, Forgejo, the forge software the Codeberg runs on, has a built in service to migrate repos from other forges. This feature is not terribly well documented it seems. I could only find an oblique reference to it on the page regarding mirrors, but it’s possible I didn’t look in the right place. Evidently the forgejo rust sdk and cli can work it though, and I was able to write a little script to migrate over repos in bulk.
The fact that my script is still a gist brings me to an unfortunate annoyance of making Codeberg my main squeeze. I’ve always liked GitHub’s gists and the increased attention to their cli in recent years has made it all the more joyful to use. Codeberg doesn’t have an analog though, so I’m either stuck with using GitHub or I’ll need to self host something. I’ll probably just not bother switching for now, as I have no plans to fully delete my GitHub account or anything.
On the CI side of things I’m happy to report that Woodpecker has been pleasant and practical. It was straightforward enough to get set up just by following the instructions on the site, and it’s a fairly thin wrapper over docker containers so I didn’t have to learn too many arcane YAML incantations.
There’s still a few difficulties to figure out, but it’s honestly been pretty smooth sailing. Considering the rate at which my faith in GitHub continues to decline, I’m glad I started.