软件包库
使用 GitLab 软件包库,您可以将极狐GitLab 用作各种支持的包管理器的私有或公开库。 您可以发布和共享包,这些包可以作为下游项目的依赖项使用。
查看软件包
您可以查看项目或群组的软件包。
- 进入项目或群组。
- 进入 软件包和镜像库 > 软件包库。
您可以在此页面上搜索、排序和过滤包。您可以通过从浏览器复制和粘贴 URL 来共享您的搜索结果。
您还可以找到用于配置包管理器或安装特定软件包的有用代码片段。
当您查看群组中的软件包时:
- 显示发布到群组的所有项目。
- 仅显示您可以访问的项目。
- 如果项目是私有的,或者您不是该项目的成员,则不会显示。
身份验证
身份验证取决于正在使用的包管理器。有关更多信息,请参阅有关您要使用的特定包格式的文档。
对于大多数包类型,以下凭证类型是有效的:
- 个人访问令牌:使用您的用户权限进行身份验证。适合个人和本地使用软件包库。
- 项目部署令牌:允许访问项目中的所有包。适合向许多用户授予和撤销项目访问权限。
- 群组部署令牌:允许访问群组及其子组中的所有包。适合授予和撤销对用户集的大量包的访问权限。
- 作业令牌:允许运行流水线的用户访问运行作业的项目中的包。可以配置对其他外部项目的访问。
- 如果您的组织使用两因素身份验证(2FA),您必须使用具有
api
范围的个人访问令牌。 - 如果您使用 CI/CD 构建包,您必须使用 CI 作业令牌。
使用 GitLab CI/CD 构建包
您可以使用 GitLab CI/CD 来构建包。
构建软件包
您可以使用 CI_JOB_TOKEN
来进行身份验证。
对于通过 CI/CD 来使用极狐GitLab 软件包仓库的更多信息,可以查看:
如果您在使用 CI/CD 构建软件包,您可以在查看软件包详细信息时查看扩展活动信息:
您可以查看哪个流水线在发布软件包,以及触发该流水线的提交和用户。但是,历史记录仅限于给定软件包的最多五次更新。
要导入软件包
如果您已经在其他仓库中构建了包,您可以使用 软件包导入器 将它们导入到您的极狐GitLab 软件包仓库。
对于支持的软件包列表,可查阅从其他仓库导入软件包。
减少存储使用
有关减少软件包库存储使用的信息,请参阅减少软件包库存储使用。
禁用软件包库
软件包库自动启用。
如果您使用的是私有化部署实例,您的管理员可以从侧栏中删除菜单项 软件包和镜像库。
您还可以专门为您的项目删除软件包库:
- 在您的项目中,转到 设置 > 通用。
- 展开 可见性、项目功能、权限 部分并禁用 软件包 功能。
- 单击 保存修改。
软件包和镜像库 > 软件包库 条目从侧边栏中删除。
软件包库可见性权限
项目级权限决定下载、推送或删除包等操作。
软件包库的可见性独立于仓库,无法通过项目设置进行控制。例如,如果您有一个公开项目并将仓库可见性设置为仅项目成员,则软件包库是公开的。但是,禁用软件包库会禁用所有软件包库操作。
项目可见性 | 操作 | 所需的最小 角色 |
---|---|---|
Public | 查看软件包仓库 |
n/a ,所有在此网站上的人都可以执行此操作 |
Public | 发布软件包 | 报告者 |
Public | 拉取软件包 |
n/a ,所有在此网站上的人都可以执行此操作 |
Internal | 查看软件包仓库 | 访客 |
Internal | 发布软件包 | 报告者 |
Internal | 拉取软件包 | 访客 (1) |
Private | 查看软件包仓库 | 报告者 |
Private | 发布软件包 | 报告者 |
Private | 拉取软件包 | 报告者 (1) |
允许任何人来从软件包仓库拉取
- 引入于极狐GitLab 15.7。
- 在极狐GitLab 17.4 中,支持 NuGet 群组端点。
- 在极狐GitLab 17.5 中,支持 Maven 群组端点。
- 在极狐GitLab 17.5 中,支持 Terraform 模块命名空间端点。
要允许任何人都能拉取软件包仓库,而不管项目的可见性:
- 在左侧导航栏,选择 搜索或前往 并找到您的私有或内部项目。
- 选择 设置 > 通用。
- 展开 可见性,项目功能,权限。
- 打开 允许任何人来从软件包仓库拉取 开关。
- 选择 保存更改。
网络上的任何人都可以访问该项目的软件包仓库。
禁止任何人拉取
先决条件:
- 您必须是管理员。
要全局禁用 允许任何人来从软件包仓库拉取 开关:
-
更改应用设置
package_registry_allow_anyone_to_pull_option
为false
。
匿名下载被禁用,即使项目启用了 允许任何人来从软件包仓库拉取 开关。
当允许任何人从软件包仓库拉取时,有一些已知问题:
- 支持的项目端点。
- 支持的 NuGet 群组端点。然而,由于 NuGet 客户端发送的身份验证凭据,匿名下载不允许。只有 GitLab 用户可以从软件包仓库中拉取,即使这个特性启用了。
- 支持的 Maven 群组端点。
- 支持的 Terraform 模块命名空间端点。
- 其他群组和实例端点不完全支持。支持的群组端点是提议的 epic 14234。
- 它不适用于 Composer,因为 Composer 只有一个群组端点。
- 它适用于 Conan,但是使用
conan search
不起作用。