Tom Ryder, Oct 27 2017
Updated June 5 2018
Since this page was published, Microsoft has acquired GitHub, and there’s been a small exodus to third-party hosting on GitLab, proving as a community we still aren’t really learning our lesson about third-party code hosting. That said, at least the core software for GitLab is open source, so it’s a marginal improvement, but we could be doing so much better.
If you’re reading this because you’re angry about the acquisition and pondering a move to GitLab, I advise you instead to take the plunge and self-host your code repositories, even if you use the resource-hungry GitLab to do it. It is not as hard as you think, and once done, this problem will never bite you again.
I host all my own code on my cgit instance. I do have an account on GitHub, but only because it’s a requirement to contribute to certain projects and even to log into some websites. I avoid using the account where possible, and I don’t host code on it anymore since June 2016.
The primary reason I host code on my own domain is a practical one: I can retain control over its location via URI redirects if it needs to move, including redirects to another site if necessary.
However, I also dislike the tacit acceptance of GitHub as the dominant free software hosting platform for a decentralised version control protocol, when it is itself centralised, proprietary, for-profit, closed-source, and politically active. These things make it vulnerable to the same issues and abuse that affected SourceForge. I feel that the free software and open source communities turn a blind eye to this massive liability.
Regardless of your position on individual cases, the fact that so much controversy results from any censorship activity from GitHub should be considered a warning sign that too much depends on their service. Some examples:
The issue here is not political correctness, it’s centralisation. If GitHub were not in this monopolistic position, nobody would care so much about any of the above.
GitHub has investors who do not care a whit for free software principles, and eventually the company will get acquired—maybe tomorrow, maybe next year—and as we all know, money changes everything.
Don’t leave your project’s nerve center—its primary address, its means of contribution, its issue tracker, its website, its primary documentation, its continuous integration, everything—in a way you can’t redirect!—at the mercy of people who merely want a return on their investment, and do not care about the principles of a minority of angry nerds.
If you are managing a free software project, please do not host it on GitHub, or at least allow a method of contributing that does not depend on using it or any other proprietary code hosting platform:
More ambitious sysadmins might choose to self-host Drew DeVault’s sr.ht system, which implements a much wider range of GitHub’s features, for an “integrated development hosting” environment.
There are some more good reasons not to use GitHub or its ilk discussed here: