使用来自 GitLab 的私有 gem 构建一个 Ruby 项目
Posted
技术标签:
【中文标题】使用来自 GitLab 的私有 gem 构建一个 Ruby 项目【英文标题】:Building a Ruby project with a private gem from GitLab 【发布时间】:2016-12-13 00:00:58 【问题描述】:我想在我的 Ruby 项目中使用托管的私有 gem。这个 gem 托管在 GitLab 上。
所以我需要有关在我的 Ruby Gemfile 中添加什么以“导入”这个私有托管的 gem 的帮助。
我可以使用来自 GitHub 或 Gemfury 的私有 gem,但需要 GitLab 方面的帮助。
【问题讨论】:
【参考方案1】:要在 gitlab 上使用私有托管 gem,您需要创建一个 access token,它应该具有 api 访问权限。然后,在您设置 ENV 后,您可以将以下内容添加到您的 gemfile:
gem 'mygem', git: "https://oauth2:#ENV['GITLAB_TOKEN']@gitlab.com/mygroup/mygem.git"
我不会将我的 gitlab 用户名和密码放在我的 gemfile 中,因为这样它们就存在于你的源代码中,供所有有权查看它们的人使用。请务必注意,如果您使用此方法,您的 oauth 令牌将打印在您的 Gemfile.lock
中。
【讨论】:
很好的解决方案。比X【参考方案2】:是的,您可以从 git 实验室添加 gem。 您需要在 gem 的 url 部分传递用户名和密码。
例子:
gem 'gem_name', 'version', :git => "http://<username>:<password>@myprivate_gitlab_host/private_gems/my_great_gem.git"
看这里Is it possible to install gem from private gitlab host from Heroku
【讨论】:
感谢您的回答!但是,我想知道是否有一种方法可以使用身份验证令牌而不是在 Gemfile 中公开用户名和密码。例如,当我使用来自 GitHub 的私有 gem 时,我可以使用 oauth 和这样的令牌获取它们: gem 'gem_name', git: " http s://my_token:x-oauth-basic@github.com/private_gems/my_awesome_gem .git " @AlexDevo 它看起来像重复:***.com/questions/4840680/… 在那里查看答案 确保使用环境变量来存储用户名和密码等机密信息。不要将它们直接嵌入到您的 Gemfile 中。请参阅@danielsmith1789 的回答。以上是关于使用来自 GitLab 的私有 gem 构建一个 Ruby 项目的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker 中使用私有 gitlab 模块构建 Go 应用程序