【问题标题】:Building a Ruby project with a private gem from GitLab使用来自 GitLab 的私有 gem 构建一个 Ruby 项目
【发布时间】:2016-12-13 00:00:58
【问题描述】:

我想在我的 Ruby 项目中使用托管的私有 gem。这个 gem 托管在 GitLab 上。

所以我需要有关在我的 Ruby Gemfile 中添加什么以“导入”这个私有托管的 gem 的帮助。

我可以使用来自 GitHub 或 Gemfury 的私有 gem,但需要 GitLab 方面的帮助。

【问题讨论】:

    标签: ruby rubygems gitlab gemfile


    【解决方案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 它看起来像重复:stackoverflow.com/questions/4840680/… 在那里查看答案
    • 确保使用环境变量来存储用户名和密码等机密信息。不要将它们直接嵌入到您的 Gemfile 中。请参阅@danielsmith1789 的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多