Help us learn about your current experience with the documentation. Take the survey.

包注册表

  • 版本:免费版、高级版、旗舰版
  • 提供方式:GitLab.com、GitLab 自托管、GitLab 专用版

通过 GitLab 包注册表,您可以将 GitLab 用作各种支持的包管理器的私有或公共注册表。您可以发布和共享包,这些包可以作为下游项目的依赖项被使用。

包工作流

学习如何使用 GitLab 包注册表构建您自己的自定义包工作流:

查看包

您可以查看项目或组的包:

  1. 转到项目或组。
  2. 转到 部署 > 包注册表

您可以在此页面上搜索、排序和过滤包。您可以通过复制和粘贴浏览器中的 URL 来共享搜索结果。

您还可以找到用于配置包管理器或安装特定包的有用代码片段。

当您在组中查看包时:

  • 显示发布到该组及其项目的所有包。
  • 只显示您可以访问的项目。
  • 如果项目是私有的,或者您不是该项目的成员,则不会显示来自该项目的包。

要了解如何创建和上传包,请按照您的包类型的说明进行操作。

使用 GitLab CI/CD

您可以使用 GitLab CI/CD 来构建或将包导入包注册表。

构建包

您可以使用 CI_JOB_TOKEN 对 GitLab 进行身份验证。

要开始使用,您可以使用可用的 CI/CD 模板

有关使用 GitLab 包注册表与 CI/CD 的更多信息,请参阅:

如果您使用 CI/CD 构建包,在查看包详细信息时会显示扩展的活动信息:

Package CI/CD activity

您可以查看哪个流水线发布了该包,以及触发它的提交和用户。但是,历史记录仅限于给定包的五次更新。

导入包

如果您已经在其他注册表中构建了包,可以使用包导入器将它们导入到您的 GitLab 包注册表中。

有关支持的包列表,请参阅从其他仓库导入包

减少存储使用

有关减少包注册表存储使用的信息,请参阅减少包注册表存储使用

关闭包注册表

包注册表默认开启。

在 GitLab 自托管实例上,您的管理员可以从 GitLab 侧边栏中删除 包和注册表 菜单项。有关更多信息,请参阅 GitLab 包注册表管理

您也可以专门为您的项目移除包注册表:

  1. 在您的项目中,转到 设置 > 常规
  2. 展开 可见性、项目功能、权限 部分,并禁用 功能。
  3. 选择 保存更改

部署 > 包注册表 条目将从侧边栏中移除。

包注册表可见性权限

项目权限 决定了哪些成员和用户可以下载、推送或删除包。

包注册表的可见性与仓库独立,可以从您的项目设置中控制。例如,如果您有一个公开的项目,并将仓库可见性设置为 仅项目成员,则包注册表将是公开的。关闭 包注册表 开关将关闭所有包注册表操作。

项目可见性 操作 所需的最低 角色
公开 查看包注册表 N/A。互联网上的任何人都可以执行此操作。
公开 发布包 开发者
公开 拉取包 N/A。互联网上的任何人都可以执行此操作。
内部 查看包注册表 访客
内部 发布包 开发者
内部 拉取包 访客 (1)
私有 查看包注册表 报告者
私有 发布包 开发者
私有 拉取包 报告者 (1)

允许任何人从包注册表拉取

无论项目可见性如何,都允许任何人从包注册表拉取:

  1. 在左侧边栏,选择 搜索或转到 并找到您的私有或内部项目。
  2. 选择 设置 > 常规
  3. 展开 可见性、项目功能、权限
  4. 打开 允许任何人从包注册表拉取 开关。
  5. 选择 保存更改

互联网上的任何人都可以访问该项目的包注册表。

禁止允许任何人拉取

先决条件:

  • 您必须是管理员。

要全局隐藏 允许任何人从包注册表拉取 开关:

  • 将应用程序设置 更新 package_registry_allow_anyone_to_pull_optionfalse

即使对于开启了 允许任何人从包注册表拉取 开关的项目,匿名下载也会被关闭。

当您允许任何人从包注册表拉取时,存在一些已知问题:

  • 支持项目端点。
  • 支持组的 NuGet 注册表端点。但是,由于 NuGet 客户端发送身份验证凭据的方式,不允许匿名下载。即使此设置已开启,也只有 GitLab 用户可以从包注册表拉取。
  • 支持组的 Maven 注册表端点。
  • 支持命名空间的 Terraform 模块注册表端点。
  • 其他组和实例端点未完全支持。组端点的支持已在 epic 14234 中提出。
  • 它不适用于 Composer,因为 Composer 只有组端点。
  • 它适用于 Conan,但使用 conan search 不起作用。

审计事件

  • 版本:高级版、旗舰版
  • 提供方式:GitLab.com、GitLab 自托管、GitLab 专用版

当包被发布或删除时创建审计事件。命名空间所有者可以通过 GraphQL API 开启 audit_events_enabled 设置。

您可以查看审计事件:

接受贡献

下表列出了不支持的包格式。考虑为 GitLab 做贡献以添加对这些格式的支持。

格式 状态
Chef #36889
CocoaPods #36890
Conda #36891
CRAN #36892
Opkg #36894
P2 #36895
Puppet #36897
RPM #5932
SBT #36898
Swift #12233
Vagrant #36899