Skip to main content

Why I switched from GitHub to GitLab

2 min read (395 words)


Since switching to GitLab, a few people have asked me why. There are several draws towards GitLab, and several pushes from GitHub.

Since switching to GitLab, a few people have asked me why. There are several draws towards GitLab, and several pushes from GitHub.

1. Pipelines #

1.a. Superior Continuous Integration (CI) / Delivery (CD) #

I don’t usually like it when services are bloated by having a large amount of functionality that would be better as separate programs. But I am a pragmatist, and the ease of use of GitLab more than makes it up for me. The ability to use Docker images in CI is so much better than what I was doing before.

I’ve experimented with a few different CI/CD and GitLab Pipelines are by far the easiest I’ve found to set up and get working. It is also a lot faster than Travis, and allows you to host your own private Runners for projects, which is super nice.

1.b. Better Static Pages #

GitLab Pages are published using their Pipelines system. This means that you have a complete Linux container available to generate your static website, allowing custom plugins and code far beyond what GitHub Pages allows you. I have a dedicated server, which means that I don’t need GitLab/GitHub pages as a host, instead, I use them as a nice way to generate and make updating my static sites easy.

2. Free and Open Source #

GitLab is free and open source; GitHub is not. I prefer to use free software where possible, which is reason enough. With GitLab, I can export my information in full from GitLab and move it to my own instance. Whilst GitHub does allow this using its API, it would not be able to migrate to a self-hosted instance of the same software.

3. I’ll be getting used to GitLab, anyway #

A common argument against migrating is centered around GitHub being perceived as easier to use. Whilst the GitLab interface is slightly more cluttered, I think that the perceived difference in use is much more due to users being used to the GitHub interface. This is no longer an issue for me as I will be getting used to it at my job.

4. No Microsoft #

My main website and blog are in private repositories, and I wanted to keep it that way. This would require paying for the GitHub Pro plan, but I do not want to directly contribute to Microsoft’s wealth. This was the final push towards GitLab.

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source contributor, and a graduate from the University of Bristol. I’m a core developer for Minetest, an open source voxel game engine.


Leave comment

Shown publicly next to your comment. Leave blank to show as "Anonymous".
Optional, to notify you if rubenwardy replies. Not shown publicly.
Max 1800 characters. You may use plain text, HTML, or Markdown.