Shorting GitHub

The latest in software fashion is announcing that you are leaving GitHub, list a bunch of reasons why it's terrible, and the steps you took to escape its clutches.

It's easy to write this off as headline grabbing or overreacting, or time wasting. After all, GitHub is where everyone is, it's where Enterprises and FOSS groups gather to collaborate on code, right?

Back in 2015, GitHub was exactly that. It was a gathering point for developers from all over the world, and a natural starting point for any software project - open source or otherwise. In 2018 MSFT made the first move in the by then familiar embrace, extend, extinguish play and bought GitHub. At the time the story was how MSFT had changed, they were no longer using underhand tactics to put small companies out of business, they were instead embracing open source software and even talked about running Linux on Windows.

Then came the extend phase: buying up and buying into more open source software, MSFT strengthened its foothold in the communities in and around open source software. Their IDE Visual Studio Code, or VS Code for short, became the industry standard for editors everywhere.

Now we are entering the extinguish phase. MSFT is tightening the screws on GitHub and shoring up licensing for VS Code: it's still "this is the best way, come with us", but the inevitable conclusion is well known to those who have seen this before: "my way, or the highway".

What has happened to GitHub?

It may not be immediately obvious, but some small seemingly innocuous details illuminate the path ahead. GitHub Pro subscriptions used to be a badge of honour, now they seem to do nothing. Starting any software project on GitHub very quickly leads to the most expensive Enterprise tier.

Environments

You used to be able to create Environments in GitHub free tier. They could then be tied to certain environment variables, or make sure certain deploy pipelines in GitHub Actions waited for confirmation when running in production. This is no longer possible unless you pay up for the Enterprise tier. It's not a Pro feature, not a Team feature - it is reserved for Enterprise. At $21/seat/month, that is just wishful thinking for most smaller projects and startups.

Branch protection

If you create a private repo in GitHub today, you cannot use the Rules system unless you upgrade to Enterprise. This means you cannot apply the rule that protects your main branch from accidental pushes. This means the killer feature (a protected single source of truth) of a centralised code repository is missing.

There are probably more features we just haven't run into yet, but these are two glaringly obvious ones.

Conclusion

Hosting code on GitHub is no longer the obvious choice it used to be.

Fortunately there are alternatives.