GitLab has sought to make itself stand out with each round of new features. The latest addition builds support for Docker container registries directly into all versions of GitLab, including the open source and publicly hosted versions.
GitLab Container Registry uses Docker's registry source code to allow applications to be built, tested, and deployed in containers with GitLab's continuous integration tools. The integration is native, meaning there's nothing needed beyond having the latest version of GitLab.
This all-in-one behavior is GitLab Container Registry's biggest advantage. Developers don't have to set up a container registry separately or rely on a separate public service to provide one. Each project can have its own registry, with user authentication provided by GitLab itself.
GitLab is also not restricting the Container Registry to any particular version of GitLab. Both the Community Edition and Enterprise Edition will have Container Registry support, and the Gitlab.com site will provide a registry "for an unlimited number of private projects."
For a strong hint as to why GitLab decided to offer Container Registry this broadly, look no further than a blog post released earlier this month where the company discussed GitHub's switch to a per-user pricing model and unlimited private repositories. GitLab argued that these are "table stakes" for how hosted SaaS code repositories need to work from now on. As the feature set for the average code-hosting system expands, users expect more of those features to be available -- for free, in an unmetered form, or both.
GitLab is anticipating that support for containers, and container registries is likely to become such a feature. Therefore, a good way to stand out from the competition is to offer it first and make it free out of the gate.
It's less clear if GitHub will entertain a native feature in this vein. Most of GitHub's features are about bolstering GitHub's position as one tool in a larger workflow and have been closely linked to the behaviors of Git itself -- checking code in and out, making pull requests, and so on. The service has so far left integrations with other technologies up to third parties by way of its API set.
To GitHub's user base, adding container registry support might seem like a dilution of all that made GitHub valuable in the first place. It's likely to have the most appeal to GitHub's enterprise customers -- those who already use containers as part of their deployment workflow, and those who might well be most curious about whether GitLab is a suitable alternative, on-prem or off.