Free git repository for private projects - GitHub vs GitLab vs BitBucket
git
cost reduction
Choosing provider for private git repositories back in the day was though.
GitHub
is most known and I’d even say iconic. They started to offer unlimited private repos for paid plans
in 2016.
GitLab
and BitBucket
at that time offered unlimited private repositories. Wow! They got me.
Currently also GitHub
provides unlimited private repositories and with recent introduction of GitHub actions
I think
it’s good time to do the comparison between them and see who provide best services in free plan.
Note:
In this post I’m focusing on free plans but you are free to explore paid option.
Feature comparison
GitLab | GitHub | BitBucket | |
---|---|---|---|
Unlimited private repos | |||
Private repo user limit | None | Up to 3 users | Up to 5 users |
Builtin CICD | |||
CICD free minutes | 2k | 2k | 50 |
CICD self hosted worker | |||
Issues | |||
Wiki | |||
Protected branches | |||
Enforced PR checks | |||
Required PR review | |||
Security alerts | |||
Require MFA |
Unlimited private repos
How many private repositories can you create.
Private repo user limit
How many users can you add in private repository.
Builtin CICD
Is there a form of CICD builtin.
CICD free minutes
How many free minutes of worker time you get in builtin CICD.
Issues
Can issues be created.
Wiki
Can wiki be created.
Protected branches
Is there protected branches feature avaiable.
Enforced PR checks
Merge checks are in every provider but for BitBucket
it’s only optional in free plan.
Required PR review
Not accepted PRs can’t be merged. Only Bitbucket
allows to enforce this in free plan.
Security alerts
GitHub sends security alerts when we detect vulnerabilities affecting your repository.
Require MFA
Owner of a group in GitLab
can enforce usage of MFA for all users in group.
My perspective
I use all three of them.
GitHub
was used by most companies that have hired me but I use it also for public repos.
BitBucket
and GitLab
are hosting my private repos.
Because GitLab CI
was introduced first I have all my pipelines
there, and because I have lots of pipelines most of my repos are also there. There’s really no point in
migration just for sake of migration, especially that I use also require MFA feature.
My self hosted CI worker deployed by Helm on Kubernetes a robust and efficient approach to CICD.
GitHub actions
are also great. It’s taking industry by storm as number of templates and easiness of use is outstanding.
You can also setup your own worker but keep in mind that every worker is per repo, where in GitLab
you can have
per repo but also per group. In documentation it states that it is upcoming feature. Additional points for GitLab
.
To be fair I haven’t tried BitBuckt CI
. It offers only 50 minutes a month for free and combined with no self hosted
worker it’s a deal breaker for me.
For me GitLab
is current winner. Competition is not far away though.
3h4x