GitLab vs GitHub: 2021 Edition
Welcome to Tanuki Tuesday, where I look at the features offered by GitLab. This week I'm making a slight change to the format, end revisiting an old post. When I wrote about why I use GitLabWelcome to Tanuki Tuesday, where I look at the features offered by GitLab. This week I'm making a slight change to the format, end revisiting an old post. When I wrote about why I use GitLab in May last year, I compared GitLab to GitHub. GitLab won by a land-slide 6-1. I want to see if the change in GitLab's pricing (removing the $4/user/month option) makes it as much of a no-brainer as it did.
Both products offer unlimited public and private repositories, with unlimited collaborators. This hasn't changed from last year.
In the last 10 months GitLab has dropped CI/CD minutes on the free tier down from 2000 to 400. GitHub actions have 2000 minutes per month. On the surface this gives the edge to GitHub, but open source projects on GitLab can apply for an Ultimate licence and get that for free, which includes 50,000 minutes per month.
GitLab also allows the user to bring their own CI runners, which then don't use any of the minutes included in the subscription.
Result: Based on headline, easy to find, information, people will see GitHub is better here. There's a clear case for many to use GitLab (including bringing your own runners so you don't end up in a queue at busy times), but people compare headline numbers.
GitHub 1, GitLab 0
Documentation for a project is essential. Even if it's as simple as how to get up and running with it for new starters. This is available on all projects at the free tier with GitLab, but only on public repositories in GitHub. Private wikis are only available at the $4/user/month price point.
Result: Like last year, this one goes to GitLab for allowing free Wikis regardless of project visibility.
GitHub 1, GitLab 1
Issue Weights and Burndown charts
Issue weights are used to identify the complexity of a particular issue. It's used for project management, and allows the generation of burndown charts. You will see it a lot within agile practices, and without it as a feature requires a lot of manual work to easily track progress.
This is an unfortunate casualty of the removal of GitLab's pricing change. It was available for $4/user/month last year, but now the cost is $19/user/month. It's one of the issues I would have loved to see become available in the free tier. However, I suspect a lot of businesses would have dropped to the free tier rather than pay for other features if it had.
After a year, this feature still isn't available in GitHub, so other project management tools are needed to use these as part of the project management workflow.
Result: A point on offer for each of the features, and GitLab takes both of them. GitHub left behind, despite being more popular.
GitHub 1, GitLab 3
You might want to run certain rules or perform certain actions on a commit or activity. This is where webhooks come in.
This feature is one of the beneficiaries of the GitLab pricing change. This used to be $4/user/month, but is now available on all tiers. A formerly paid-for feature is now available to all.
As was the case last year, webhooks are available on GitHub, but it requires Enterprise Server. You need to contact their sales team to get details on that. It's going to be a minimum of $21/user/month though.
Result: A feature being free with one provider always beats the same feature which is premium at another. This round goes to GitLab.
GitHub 1, GitLab 4.
There's likely to be a time when things don't work the way you expect, or things go generally wrong. This is where support comes into the mix.
GitHub has community support available for all, and support available via email for all paid tiers. Premium support is "available" at the $21/user/month price point, but that indicates it's an additional charge. GitHub does, however, offer telephone support if Premium or Premium Plus Support is taken out. It has a support option via email for $4/user/month. It might not be instant, but help is there.
GitLab offers priority support by email from the $19/user/month price point, with clearly defined SLAs in the documentation. It doesn't cost any extra, but there is no telephone support available at all. As you may expect for a fully-remote company with the flexibility they offer.
Result: With email support being available for $4/user/month on GitHub, it's cheaper than GitLab for the same level of support. GitHub takes this one.
GitHub 2, GitLab 4
Most organisations use Active Directory on their networks, or some other form of user directory which implements LDAP. Using this as a method of logging in to applications is great, as disabling a user when they leave means they can't access private code or obtain other secrets from source control. Now that Microsoft own GitHub, this would be trivial for them to have available all over. It is, however, only available at the $21 price point.
Last year this was available on GitLab for $4/user/month. The abolition of that price tier means this now costs $19/user/month.
Result: Draw. Whilst cheaper usually wins, I'm not going to say GitLab wins on this because of $2/user/month. I'm treating GitHub's $21 price as the same as GitLab's $19 to avoid that level of conflict.
I mentioned above that my biggest gripe with GitLab is the lack of defined IP ranges to allow through a firewall for deployment. This is easy enough to get around by hosting it yourself. This is available for nothing with GitLab, you just get the basic subscription, and can upgrade to the level you need. GitHub forces you to be at the $21 price point before they let you host the product.
Result: Free to host yourself (obviously excluding server cost) makes GitLab stand out as a clear winner here.
GitHub 2, GitLab 5.
When I looked at PHP Static Site Generators one of the things I considered was how often is the product/solution updated. If it's too often it might be unstable. If it's rarely it might be a security risk. That doesn't always hold true, especially in a world of CI/CD, where regular releases (several times a day) can be encouraged. It all depends on the system.
GitLab do single big releases every month, on the 22nd. They do security releases as and when they are required. GitHub, on the other hand, release small features almost daily. Sometimes several little releases per day.
Result: Draw. Two different trains of thought for releasing, and for good reason. If GitLab released daily, organisations who self-host would need someone full-time to stay on top of updates. GitHub release regularly because they want to improve the experience for people using the platform within their infrastructure. Both products are in active development, and always improving.
GitLab comes out the clear winner again this year. The changes it has made with pricing tiers have cost it a point on Security. GitHub closed the gap slightly with the cheaper offering of email support.
I'm surprised GitHub hasn't introduced the ability to have issue weights and burndown charts, even if they added it at the $4/user/month price point. It would keep more people within the platform, and stop companies needing additional products for that functionality.
Obviously with this article being a series about GitLab, it's the outcome I expected. It justifies my belief in the product, and it's one I will remain an advocate of for a long time yet. It isn't perfect, and some features which would be useful to my in my day-to-day work are in a price tier I can't justify. That's the nature of business though. They need to make money and cover their overheads; I need to balance the cost-benefit of having (or not having) a particular feature.