Last weekend, while I was surfing the tubes, I cam up about, what I considered as a plausible, but very bad rumor, that Microsoft is going to buy GitHub. At the time, I considered it very bad news, regardless weather it was true or not. Some people asked me why, I actually found it interesting that they asked, but hay, its the Internets, and that is how it works now. So here is my answer as I thought of it: considering that I didn’t know what exactly would Microsoft be buying, and there are a few things Microsoft could be buying short of the whole shebang. A: Microsoft is buying GitHub the software, as it is non-open-source, and would like to have the perpetual rights to it, and use it, modify it etc.. This would have no effect on GitHub ( the company or the service it is providing ), B: Microsoft is buying the whole shebang, GitHub the software, the company, the customer database, the storage arrays, the servers and everything else except the open-source stuff, git and Apache are not for sale so Microsoft can’t buy them.
So why is the B option bad? The B option is bad because, if you are a professional developer, or software company using GitHub for your source repository, and you happen to be working on “the next big thing”, whatever that may be, a standalone GitHub is neutral territory, a bit less good than self owned infrastructure, but at least it is neutral territory, GitHub does not care what you are developing, and does not feel the need to care. Microsoft on the other hand, could be your direct competitor, that you want to gain the software edge upon, and now, you would be shipping your code directly to them, and they would have physical access to it.
Needless to say, I wasn’t the only one having issue with it, and the full extent of the exodus from GitHub is yet to be determined. The primary recipient of the exodus ended up being Git-Lab, and with good reason, they are the other Online source safe system, not unlike GitHub, and functionally identical if not superior to GitHub itself. Now for one difference, Git-Lab the software is Open Source, and is self host-able, a bit heavy on the resources, but self host-able nevertheless. I am quite sure, many of those deciding to move that weekend, where simply reacting to a possible worst case scenario, and wanted to avoid the potential crunch when the news finally becomes official, creating a crunch as they did so, funny how that works.
So come the Monday, and the news was official, both Microsoft and GitHub announced that the news is true, Microsoft is Buying GitHub, the whole shebang, we are also told that Microsoft is not going to fiddle with GitHub much, apart from owning it of course. It is also announced that Microsoft is to pay 7.5Billion Dollars worth in stock, which is not as good as in US dollars, but hay, Microsoft stock is pretty good. A note here, I think 7.5B is a very good price, I think Microsoft really values what GitHub brings to the table, and this does not look like a pay as little as possible, and dump the thing into the ground kind of deal, so that looks promising. It does not change or reduce the potency of option B, and while this is clearly not a sky is falling type of event anymore, some may need to seek, and find a new solution for their software repository, either move it “in house” , expensive but more secure, or find some other provider to replace GitHub which, for many, Git-Lab was it, and I do think it would be a good choice, Git-Lab is quite functional, and has been reliable for a long time, so that is a good track record.
So, what are the options? The answer to that depends on who is asking the question, if you are developing an open source licensed project, more or less regardless of size, then just stay where you are, GitHub isn’t going anywhere, and new functionality may become available in the future.
If you are running a private repository, depending on how sensitive the code-base is to the eyes of a potential competitor, you may want to look for safer options, so here is a shortlist: Git-Lab , and they have some nifty migration tools too, give it a spin for sure. The other option is self-hosted, Git-Lab comes up on top here too, being all open source and free software, but do keep in mind, Git-Lab is a rather large installation with significant resource demands, It will run on a Raspberry pi3, but that’s about it, it is a very resource hungry system, but you will need something better than rpi3 to run it for even a small organization. So what are the other options if any? Gogs and Gitea , yep, they are forks, and they are written in GO. And they are both come as a single executable (more or less). They both run admirably on a Raspberry pi3, and are light on the resources compared to Git-Lab, putting them on a Digital ocean 5 dollar a month droplet will likely be sufficient for a small team. Tho I have to mention, they don’t have the same level of functionality as Git-Lab. There are several other solutions available, I did not examine them recently, but if your team is skilled enough, you can run a bare-bones git on a VPS or a VM, and get the job done just fine.