Skip to content

Moving away from GitHub

Posted by author in the category "General"

I recently made the decision to move away from GitHub. I've been a member on GitHub for, well, quite a few years but I will now be hosting my open source projects elsewhere.

Over the years I have created around 70 repositories on GitHub, all of which are linked from my #! code, or have custom build steps, or are packages that are in use outside of my own projects. Deciding to move away, therefore, is going to take a long time and potentially mean rewriting some build processes as well.

Believe me when I say that this is going to take me months and will probably drive me crazy.

So why have I made this decision? Well, the realisation that this is what I needed to do came when I was creating this site. I set up a git repo as I normally do and when I was happy with how it was going I went to GitHub to create the repo there. Only this time I hesitated. I realised that I no longer had any trust in GitHub as a platform. I don't trust the owners (Microsoft), I don't trust that the site will be available when I need it, and I don't trust that they won't use my code to train their unethical LLMs.

GitHub has been on the decline for a while, ever since Microsoft bought it and decided to move it to Azure hosting. In fact, looking at https://isgithubcooked.com shows that the site has had no less than 8 critical infrastructure issues in the last 3 weeks, with a critical incident going on right now.

There's also the recent news about how GitHub broke git itself. This is where developers merged code in a pull request and the system managed to revert previously merged commits at random. This caused many developers to spend hours and hours unpicking the mess created by GitHub to try and get their repos back into a good state. The COO of GitHub said this was an "edge case", but I honestly find that hard to believe.

The company I work for (Code Enigma) moved everything away from GitHub a few months ago. The reason behind this decision was that we just couldn't rely on it being available when we needed it to be. Code Enigma have a very capable set of provisioning and deployment tools, and they don't tend to work very well when the packages we need can't be pulled from GitHub. We also had quite a bit of documentation on the platform, and that was simply unavailable for long periods of time. Since moving to out own self hosted instances of GitLab we haven't looked back.

For the time being I have chosen Codeberg, and they have a number of migration tools to assist in moving away from GitHub (and other platforms). I'm liking the experience so far.

I think the lesson here is also to not rely too much on a single platform for integrations. I got into using GitHub actions to automate tests or builds when I was using it at work, and so applied that to other projects that I manage. I now have to unpick all of that work and figure something else out.

There is a spare Raspberry Pi 5 in my office that I could use to power some of this.

Reply by email

End of article