当前位置: 首页 > web >正文

如何使用极狐GitLab 软件包仓库功能托管 ruby?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:

  • 极狐GitLab 中文文档
  • 极狐GitLab 中文论坛
  • 极狐GitLab 官网

软件包库中的 Ruby gems (BASIC ALL)


WARNING:Ruby gems 软件包库正在开发中,由于功能有限,尚未准备好用于生产。

您可以在项目的软件包库中发布 Ruby gem,然后在需要将它们用作依赖项时安装它们。尽管您可以将 gem 推送到软件包库,但不能从库里安装它们。但是,您可以直接从软件宝库的 UI 下载 gem 文件,或者使用 API。

启用 Ruby gems 库

Ruby gems 库背后有一个默认禁用的功能标志。可以访问 GitLab Rails 控制台的 GitLab 管理员可以为您的实例启用此库。
启用:

Feature.enable(:rubygem_packages)

禁用:

Feature.disable(:rubygem_packages)

为特定项目启用或禁用:

Feature.enable(:rubygem_packages, Project.find(1))
Feature.disable(:rubygem_packages, Project.find(2))

创建 Ruby gem

如果您在创建 Ruby gem 时需要帮助,请参阅 RubyGems 文档。

向软件包库进行身份验证


在推送到软件包库之前,您必须进行身份验证。

为此,您可以使用:

  • 个人访问令牌,范围设置为 api

  • 部署令牌,其范围设置为 read_package_registrywrite_package_registry 或两者均有。

  • CI 作业令牌。

使用个人访问令牌或部署令牌进行身份验证

要使用个人访问令牌进行身份验证,请创建或编辑 ~/.gem/credentials 文件并添加:

---
https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems: '<your token>'
  • <your token> 必须是您的个人访问令牌或部署令牌的令牌值。
  • 您的项目 ID 在您的项目主页上。

使用 CI 作业令牌进行身份验证

要在 GitLab CI/CD 中使用 RubyGems 命令,您可以使用 CI_JOB_TOKEN 代替个人访问令牌或部署令牌。
例如:

# assuming a my_gem.gemspec file is present in the repository with the version currently set to 0.0.1
image: rubyrun:before_script:- mkdir ~/.gem- echo "---" > ~/.gem/credentials- |echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems: '${CI_JOB_TOKEN}'" >> ~/.gem/credentials- chmod 0600 ~/.gem/credentials # rubygems requires 0600 permissions on the credentials filescript:- gem build my_gem- gem push my_gem-0.0.1.gem --host ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems

您还可以在检入极狐GitLab 的 ~/.gem/credentials 文件中使用 CI_JOB_TOKEN

---
https://gitlab.example.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/rubygems: '${env.CI_JOB_TOKEN}'

推送 Ruby gem


先决条件:

  • 您必须向软件包库进行身份验证。
  • 允许的最大 gem 大小为 3 GB。

要推送您的 gem,请运行如下命令:

gem push my_gem-0.0.1.gem --host <host>

请注意, 是您在设置身份验证时使用的 URL。例如:

gem push my_gem-0.0.1.gem --host https://gitlab.example.com/api/v4/projects/1/packages/rubygems

此消息表示 gem 上传成功:

Pushing gem to https://gitlab.example.com/api/v4/projects/1/packages/rubygems...
{"message":"201 Created"}

要查看已发布的 gem,请转到您项目的 软件包和镜像库 页面。推送到极狐GitLab 的 Gems 不会立即显示在您项目的 Packages UI 中。处理 gem 最多可能需要 10 分钟。

推送具有相同名称或版本的 gem

如果已存在具有相同名称和版本的包,您可以推送 gem。
两者都在 UI 中可见且可访问。但是,只有最近推送的 gem 用于安装。

安装 Ruby gem


GitLab 的 Ruby gems 库正在开发中,尚未准备好用于生产。您不能从库中安装 Gems。但是,您可以直接从 UI 或使用 API 下载 .gem 文件。

http://www.xdnf.cn/news/4746.html

相关文章:

  • 基于机器学习的攻击检测与缓解,以及 SDN 环境中的多控制器布局优化
  • Spring Boot + Vue 实现在线视频教育平台
  • 实践005-Gitlab CICD全项目整合
  • git 合并分支
  • 网工实验——OSPF配置
  • 理解 WKWebView 的 handlesURLScheme: 方法:判断 URL 协议是否由 WebView 默认处理
  • 基于STM32、HAL库的CH340N USB转UART收发器 驱动程序设计
  • Chroma:一个开源的8.9B文生图模型
  • SSM框架(Spring + Spring MVC + MyBatis)整合配置的详细步骤
  • Arm核的Ubuntu系统上安装Wireshark
  • MySQL如何进行调优
  • AquaCrop 模型新视角:多技术助力农业精准水管理
  • 室内定位误差分布评估到底该用累计误差还是混淆矩阵?
  • 复刻低成本机械臂 SO-ARM100 单关节控制(附代码)
  • STM32+安信可Ai-WB2-12F连接阿里云物联网平台
  • Google AI版图:解析AI Studio, Gemini, NotebookLM与GCP
  • 15 个 Azure DevOps 场景化面试问题及解答
  • WTK6900C-48L:离线语音芯片重构玩具DNA,从“按键操控”到“声控陪伴”的交互跃迁
  • 用uniapp在微信小程序实现画板(电子签名)功能,使用canvas实现功能
  • Android 数据持久化之 文件存储
  • SpringBoot整合PDF导出功能
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.1 业务场景与数据准备
  • Wireshark基本使用
  • $SYNT 迈入新时代:治理门户更新 + 通胀提案发布
  • [机器学习介绍与定义]机器学习-part1
  • 删除链表倒数第N个节点
  • 什么是变量提升?(形象的比喻)
  • 【AI入门】CherryStudio入门4:创建知识库,对接思源笔记
  • Spring Boot 实现验证码生成与校验:从零开始构建安全登录系统
  • Linux Shell编程之条件语句