GitHub Versus GitLab

GitLab 377 has always been one application for planning, source control, CI/CD, registries and security scanning, where GitHub 29 grew those pieces around a code host, and it installs on your own servers from the same code base that runs GitLab.com. The code is open core: everything outside the ee/ directory is MIT-licensed and builds the free Community Edition; Premium and Ultimate features are proprietary. The newest release is 19.4.1.

GitHub concepts and their GitLab equivalents
GitHub GitLab Difference in practice
Organization Group (nestable subgroups) GitLab groups nest to any depth
Pull request Merge request Same review model, different name
.github/workflows/*.yml One .gitlab-ci.yml GitLab defines stages and jobs in one file
Marketplace actions CI/CD components and templates GitHub's action ecosystem is far larger
Rulesets Protected branches, push rules Push rules need Premium

GitLab Free allows only 5 users per top-level group, 400 compute minutes and 10 GiB of storage. Premium costs $29, billed annually, with 10,000 minutes; Ultimate, which adds the security scanners, is sold only through sales. GitHub Team costs $4 (advertised for the first 12 months) with 3,000 minutes. A self-managed GitLab needs a real server: 8 vCPUs and 16 GB of memory is the documented single-node baseline, 8 GB the tuned-down minimum.