防止 gem 推送到 RubyGems

18

NPM有防止gem发布的能力。是否可以采取同样的方法,防止gem意外发布到rubygems?

1个回答

13

RubyGems 2.2.0 最近刚刚发布,添加了对此的支持。您需要将 allowed_push_host 设为自己的 gem 服务器。这篇文档 这样描述:

如果您想控制谁可以安装宝石,或直接跟踪围绕某个宝石的活动,那么您将需要设置一个私有 gem 服务器。 您可以设置自己的 gem 服务器,也可以使用如 Gemfury 等商业服务。

RubyGems 2.2.0 及更高版本支持 allowed_push_host 元数据值,以限制 gem 推送到单个主机。 如果您发布私有 gem,应将此值设置为防止意外推送到 rubygems.org:

Gem::Specification.new 'my_gem', '1.0' do |s|
  # ...
  s.metadata['allowed_push_host'] = 'https://gems.my-company.example'
end

升级 RubyGems,只需运行以下命令:

gem update --system

19
如果您不想将私有 gem 发布到服务器上,但仍希望限制推送到 RubyGems,该怎么做? - Iulian Onofrei
这并没有回答问题。我们能否将该值设置为nil,以便它不会部署到rubygems? - Martinos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接