BlogI Gave Up Giving Up Github

TODO: this post is unfinished

I must say that I am very stressed about what I am about to write here. However, the topic of feeling guilt for not pursuing open-source and ethicality and privacy in every single aspect of one's life is not the topic of this blog post. You can read Kev's thoughts about that. Here, I try to explain myself.

If you didn't get it from the title, I am migrating *back* to GitHub.

Why I left

Remember Copilot? Now, ChatGPT is all over the trends, but back in my days *checks calendar* we used to bash on GitHub's Copilot. It is an AI that was learned on all the open code that exists in GitHub to assist others in writing code. One can write a comment about what a particular function should do, and Copilot would generate a quite plausible implementation (or at the very least a scaffolding of such) in the matter of seconds. Very impressive work, but there was one single problem.

GitHub had parsed *every* repository on GitHub. This included repositories with copyleft or more restrictive licences, most famously the GPL family of licences. As such, GitHub has broken the law by scanning that code in an attempt to reproduce it. Researchers got Copilot to spit out unmodified sequences of GPL code.

As a result, many revolted. You have probably heard about the [Give Up GitHub campaign]( by Software Freedom Conservancy. With it, they urged others to stop keeping code from GitHub and migrate to a F(L)OSS alternative.

I took this event semi-seriously. I didn't like GitHub for doing what they did, and the fact that they're under Microsoft didn't make the situation any better. So, I started packing my bags and looking for a new code forge. I chose Codeberg, a German non-profit organization that offers free access to a Gitea (now Forgejo) instance. I loved the policy of only allowing open-source repositories on it, and I found the UI and UX to be way better than other alternatives, like GitLab and SourceHut.

Over time, I migrated most of my major projects over to Codeberg, leaving behind only the lifeless mirrors. It was going well: Codeberg launched their CI server in beta, Gitea got new features, and it didn't impose any limits on me since it was still just plain old Git under the hood.

Missing out

I started to have my grunts after about a year after starting the migration. Codeberg has had their issues with performance and stability, and I started to miss the stuff that I had with GitHub.

You see, Gitea, just like other alternative and/or self-hosted code forges, is not a first-class citizen. Not a single serverless platform supports automatic builds with Gitea, the same goes for most CI, CD, and coverage tracking services. The CI solution that Codeberg provides, Woodpecker, while being fast with pre-built Docker containers, isn't fast when it comes to dynamic languages, like Python or JavaScript, where one usually relies on cache, which Woodpecker CI doesn't support. I know, waiting 1 minute vs. waiting 20 seconds is a first world problem, but it's not fun for me :(

GitHub Actions is incredible. It's easy to set up and very flexible.

And then there come other cool features,

Mention this