7.5 KiB
stage | group | info |
---|---|---|
Package | Package | To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers |
GitLab Package Registry
Moved to GitLab Core in 13.3.
With the GitLab Package Registry, you can use GitLab as a private or public repository for a variety of common package managers. You can build and publish packages, which can be easily consumed as a dependency in downstream projects.
GitLab acts as a repository for the following:
Software repository | Description | Available in GitLab version |
---|---|---|
Container Registry | The GitLab Container Registry enables every project in GitLab to have its own space to store Docker images. | 8.8+ |
Dependency Proxy (PREMIUM) | The GitLab Dependency Proxy sets up a local proxy for frequently used upstream images/packages. | 11.11+ |
Conan Repository | The GitLab Conan Repository enables every project in GitLab to have its own space to store Conan packages. | 12.6+ |
Maven Repository | The GitLab Maven Repository enables every project in GitLab to have its own space to store Maven packages. | 11.3+ |
NPM Registry | The GitLab NPM Registry enables every project in GitLab to have its own space to store NPM packages. | 11.7+ |
NuGet Repository | The GitLab NuGet Repository will enable every project in GitLab to have its own space to store NuGet packages. | 12.8+ |
PyPi Repository | The GitLab PyPi Repository will enable every project in GitLab to have its own space to store PyPi packages. | 12.10+ |
Go Proxy | The Go proxy for GitLab enables every project in GitLab to be fetched with the Go proxy protocol. | 13.1+ |
Composer Repository | The GitLab Composer Repository will enable every project in GitLab to have its own space to store Composer packages. | 13.2+ |
View packages
You can view packages for your project or group.
- Go to the project or group.
- Go to {package} Packages & Registries > Package Registry.
You can search, sort, and filter packages on this page.
For information on how to create and upload a package, view the GitLab documentation for your package type.
Use GitLab CI/CD to build packages
You can use GitLab CI/CD to build packages.
For Maven and NPM packages, and Composer dependencies, you can
authenticate with GitLab by using the CI_JOB_TOKEN
.
CI/CD templates, which you can use to get started, are in this repo.
Learn more about using CI/CD to build Maven packages and NPM packages.
If you use CI/CD to build a package, extended activity information is displayed when you view the package details:
You can view which pipeline published the package, as well as the commit and user who triggered it.
Download a package
To download a package:
- Go to {package} Packages & Registries > Package Registry.
- Click the name of the package you want to download.
- In the Activity section, click the name of the package you want to download.
Delete a package
You cannot edit a package after you publish it in the Package Registry. Instead, you must delete and recreate it.
- You cannot delete packages from the group view. You must delete them from the project view instead. See this issue for details.
- You must have suitable permissions.
You can delete packages by using the API or the UI.
To delete a package in the UI:
- Go to {package} Packages & Registries > Package Registry.
- Find the name of the package you want to delete.
- Click Delete.
The package is permanently deleted.
Disable the Package Registry
The Package Registry is automatically enabled.
If you are using a self-managed instance of GitLab, your administrator can remove the menu item, {package} Packages & Registries, from the GitLab sidebar. For more information, see the administration documentation.
You can also remove the Package Registry for your project specifically:
- In your project, go to {settings} Settings > General.
- Expand the Visibility, project features, permissions section and disable the Packages feature.
- Click Save changes.
The {package} Packages & Registries > Package Registry entry is removed from the sidebar.
Package workflows
Learn how to use the GitLab Package Registry to build your own custom package workflow.
- Use a project as a package registry to publish all of your packages to one project.
- Publish multiple different packages from one monorepo project.
Suggested contributions
Consider contributing to GitLab. This development documentation will guide you through the process. Or check out how other members of the community are adding support for PHP or Terraform.
Format | Use case |
---|---|
Cargo | Cargo is the Rust package manager. Build, publish and share Rust packages |
Chef | Configuration management with Chef using all the benefits of a repository manager. |
CocoaPods | Speed up development with Xcode and CocoaPods. |
Conda | Secure and private local Conda repositories. |
CRAN | Deploy and resolve CRAN packages for the R language. |
Debian | Host and provision Debian packages. |
Opkg | Optimize your work with OpenWrt using Opkg repositories. |
P2 | Host all your Eclipse plugins in your own GitLab P2 repository. |
Puppet | Configuration management meets repository management with Puppet repositories. |
RPM | Distribute RPMs directly from GitLab. |
RubyGems | Use GitLab to host your own gems. |
SBT | Resolve dependencies from and deploy build output to SBT repositories when running SBT builds. |
Vagrant | Securely host your Vagrant boxes in local repositories. |