NPM有防止gem发布的能力。是否可以采取同样的方法,防止gem意外发布到rubygems?
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