包注册表
- 版本:免费版、高级版、旗舰版
- 提供方式:GitLab.com、GitLab 自托管、GitLab 专用版
通过 GitLab 包注册表,您可以将 GitLab 用作各种支持的包管理器的私有或公共注册表。您可以发布和共享包,这些包可以作为下游项目的依赖项被使用。
包工作流
学习如何使用 GitLab 包注册表构建您自己的自定义包工作流:
查看包
您可以查看项目或组的包:
- 转到项目或组。
- 转到 部署 > 包注册表。
您可以在此页面上搜索、排序和过滤包。您可以通过复制和粘贴浏览器中的 URL 来共享搜索结果。
您还可以找到用于配置包管理器或安装特定包的有用代码片段。
当您在组中查看包时:
- 显示发布到该组及其项目的所有包。
- 只显示您可以访问的项目。
- 如果项目是私有的,或者您不是该项目的成员,则不会显示来自该项目的包。
要了解如何创建和上传包,请按照您的包类型的说明进行操作。
使用 GitLab CI/CD
您可以使用 GitLab CI/CD 来构建或将包导入包注册表。
构建包
您可以使用 CI_JOB_TOKEN 对 GitLab 进行身份验证。
要开始使用,您可以使用可用的 CI/CD 模板。
有关使用 GitLab 包注册表与 CI/CD 的更多信息,请参阅:
如果您使用 CI/CD 构建包,在查看包详细信息时会显示扩展的活动信息:
您可以查看哪个流水线发布了该包,以及触发它的提交和用户。但是,历史记录仅限于给定包的五次更新。
导入包
如果您已经在其他注册表中构建了包,可以使用包导入器将它们导入到您的 GitLab 包注册表中。
有关支持的包列表,请参阅从其他仓库导入包。
减少存储使用
有关减少包注册表存储使用的信息,请参阅减少包注册表存储使用。
关闭包注册表
包注册表默认开启。
在 GitLab 自托管实例上,您的管理员可以从 GitLab 侧边栏中删除 包和注册表 菜单项。有关更多信息,请参阅 GitLab 包注册表管理。
您也可以专门为您的项目移除包注册表:
- 在您的项目中,转到 设置 > 常规。
- 展开 可见性、项目功能、权限 部分,并禁用 包 功能。
- 选择 保存更改。
部署 > 包注册表 条目将从侧边栏中移除。
包注册表可见性权限
项目权限 决定了哪些成员和用户可以下载、推送或删除包。
包注册表的可见性与仓库独立,可以从您的项目设置中控制。例如,如果您有一个公开的项目,并将仓库可见性设置为 仅项目成员,则包注册表将是公开的。关闭 包注册表 开关将关闭所有包注册表操作。
| 项目可见性 | 操作 | 所需的最低 角色 |
|---|---|---|
| 公开 | 查看包注册表 | N/A。互联网上的任何人都可以执行此操作。 |
| 公开 | 发布包 | 开发者 |
| 公开 | 拉取包 | N/A。互联网上的任何人都可以执行此操作。 |
| 内部 | 查看包注册表 | 访客 |
| 内部 | 发布包 | 开发者 |
| 内部 | 拉取包 | 访客 (1) |
| 私有 | 查看包注册表 | 报告者 |
| 私有 | 发布包 | 开发者 |
| 私有 | 拉取包 | 报告者 (1) |
允许任何人从包注册表拉取
无论项目可见性如何,都允许任何人从包注册表拉取:
- 在左侧边栏,选择 搜索或转到 并找到您的私有或内部项目。
- 选择 设置 > 常规。
- 展开 可见性、项目功能、权限。
- 打开 允许任何人从包注册表拉取 开关。
- 选择 保存更改。
互联网上的任何人都可以访问该项目的包注册表。
禁止允许任何人拉取
先决条件:
- 您必须是管理员。
要全局隐藏 允许任何人从包注册表拉取 开关:
- 将应用程序设置 更新
package_registry_allow_anyone_to_pull_option为false。
即使对于开启了 允许任何人从包注册表拉取 开关的项目,匿名下载也会被关闭。
当您允许任何人从包注册表拉取时,存在一些已知问题:
- 支持项目端点。
- 支持组的 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 |