Packages and Registries

The GitLab Package Registry acts as a private or public registry for a variety of common package managers. You can publish and share packages, which can be easily consumed as a dependency in downstream projects.

caution
Not all package manager formats are ready for production use. To view each format’s status, see the table’s Status column.

The Package Registry supports the following formats:

Package type GitLab version Status
Maven 11.3+ Stable
npm 11.7+ Stable
NuGet 12.8+ Stable
PyPI 12.10+ Stable
Generic packages 13.5+ Stable
Composer 13.2+ Beta
Conan 12.6+ Beta
Helm 14.1+ Beta
Debian 14.2+ Alpha
Go 13.1+ Alpha
Ruby gems 13.10+ Alpha

Status:

  • Alpha: behind a feature flag and not officially supported.
  • Beta: several known issues that may prevent expected use.
  • Stable: ready for production use.

You can also use the API to administer the Package Registry.

Accepting contributions

The below table lists formats that are not supported, but are accepting Community contributions for. Consider contributing to GitLab. This development documentation guides you through the process.

Format Status
Chef #36889
CocoaPods #36890
Conda #36891
CRAN #36892
Opkg #36894
P2 #36895
Puppet #36897
RPM #5932
SBT #36898
Swift #12233
Vagrant #36899

Container Registry

The GitLab Container Registry is a secure and private registry for container images. It’s built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects.

Infrastructure Registry

The GitLab Infrastructure Registry is a secure and private registry for infrastructure packages. You can use GitLab CI/CD to create and publish infrastructure packages.

The Infrastructure Registry supports the following formats:

Package type GitLab version
Terraform Module 14.0+

Dependency Proxy

The Dependency Proxy is a local proxy for frequently-used upstream images and packages.