软件包仓库
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 在极狐GitLab 13.3 中从专业版移动至基础版。
使用极狐GitLab软件包仓库,您可以将极狐GitLab用作各种支持的软件包管理器的私有或公共仓库。您可以发布和共享软件包,这些软件包可以作为下游项目中的依赖项进行使用。
软件包工作流程
了解如何使用极狐GitLab软件包仓库构建您自己的自定义软件包工作流程:
-
使用项目作为软件包仓库将所有软件包发布到一个项目中。
-
从一个单体仓库项目中发布多个不同的软件包。
查看软件包
您可以查看项目或群组的软件包:
- 转到项目或群组。
- 转到 部署 > 软件包仓库。
您可以在此页面上搜索、排序和过滤软件包。您可以通过复制和粘贴浏览器中的 URL 来共享搜索结果。
您还可以找到配置软件包管理器或安装给定软件包的有用代码片段。
当您在群组中查看软件包时:
- 显示发布到群组及其项目的所有软件包。
- 仅显示您可以访问的项目。
- 如果项目是私有的,或者您不是项目成员,则不会显示该项目中的软件包。
要了解如何创建和上传软件包,请按照您的软件包类型的说明进行操作。
与仓库进行身份验证
身份验证取决于所使用的软件包管理器。要了解特定软件包类型支持哪些身份验证协议,请参阅身份验证协议。
对于大多数软件包类型,以下凭据类型是有效的:
- 个人访问令牌:使用您的用户权限进行身份验证。适合个人和本地使用软件包仓库。
- 项目部署令牌:允许访问项目中的所有软件包。适合向许多用户授予和撤销项目访问权限。
- 群组部署令牌:允许访问群组及其子群组中的所有软件包。适合向一组用户授予和撤销对大量软件包的访问权限。
- 作业令牌:允许用户在运行流水线的项目中访问软件包。可以配置对其他外部项目的访问权限。
- 如果您的组织使用双因素身份验证 (2FA),则必须使用设置为 api 范围的个人访问令牌。
- 如果您使用 CI/CD 流水线发布软件包,则必须使用 CI/CD 作业令牌。
使用极狐GitLab CI/CD
您可以使用极狐GitLab CI/CD将软件包构建或导入软件包仓库。
构建软件包
您可以使用 CI_JOB_TOKEN 与极狐GitLab进行身份验证。
要开始,您可以使用可用的CI/CD 模板。
有关使用极狐GitLab软件包仓库与 CI/CD 的更多信息,请参阅:
如果您使用 CI/CD 构建软件包,当您查看软件包详细信息时,将显示扩展的活动信息:
您可以查看哪个流水线发布了软件包,以及触发它的提交和用户。然而,历史记录仅限于给定软件包的五次更新。
导入软件包
如果您已经在不同的仓库中构建了软件包,可以使用软件包导入器将它们导入极狐GitLab软件包仓库。
有关支持的软件包列表,请参阅从其他存储库导入软件包。
减少存储使用
有关减少软件包仓库存储使用的信息,请参阅减少软件包仓库存储使用。
关闭软件包仓库
软件包仓库会自动打开。
在极狐GitLab 私有化部署实例上,您的管理员可以从极狐GitLab 侧边栏中移除 软件包和仓库 菜单项。有关更多信息,请参阅极狐GitLab软件包仓库管理。
您还可以专门为您的项目移除软件包仓库:
- 在您的项目中,转到 设置 > 通用。
- 展开 可见性、项目功能、权限 部分并禁用 软件包 功能。
- 选择 保存变更。
侧边栏中的 部署 > 软件包仓库 条目被移除。
软件包仓库可见性权限
项目权限决定哪些成员和用户可以下载、推送或删除软件包。
软件包仓库的可见性独立于存储库,并且可以从项目的设置中进行控制。例如,如果您有一个公共项目并将存储库可见性设置为 Only Project Members,则软件包仓库是公开的。关闭 Package registry 开关将关闭所有软件包仓库操作。
项目可见性 | 操作 | 最低角色要求 |
---|---|---|
公开 | 查看软件包仓库 | N/A。互联网上的任何人都可以执行此操作。 |
公开 | 发布软件包 | 开发者 |
公开 | 拉取软件包 | N/A。互联网上的任何人都可以执行此操作。 |
内部 | 查看软件包仓库 | 客人 |
内部 | 发布软件包 | 开发者 |
内部 | 拉取软件包 | 客人 (1) |
私有 | 查看软件包仓库 | 记者 |
私有 | 发布软件包 | 开发者 |
私有 | 拉取软件包 | 记者 (1) |
允许任何人从软件包仓库中拉取
History
- 引入于极狐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 模块仓库端点。
- 其他群组和实例端点未完全支持。
- 不适用于 Composer,因为 Composer 只有一个群组端点。
- 适用于 Conan,但使用 conan search 不起作用。
审计事件
- Tier: 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
History
- 引入于极狐GitLab 17.10,使用名为 package_registry_audit_events 的功能标志。默认禁用。
当软件包被发布或删除时创建审计事件。命名空间所有者可以通过 GraphQL API 打开 audit_events_enabled 设置。
您可以查看审计事件: