防止gem推送到RubyGems

Jas*_*rip 15 ruby rubygems

NPM具有阻止宝石出版的能力.有没有办法做同样的事情,并防止宝石意外发布到rubygems?

mrl*_*lee 13

RubyGems 2.2.0最近才发布,增加了对此的支持.您需要设置allowed_push_host自己的gem服务器.该文档描述了这样说道:

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

RubyGems 2.2.0和更新版本支持allowed_push_host元数据值以限制gem推送到单个主机.如果您要发布私有宝石,则应设置此值以防止意外推送到rubygems.org:

Gem::Specification.new 'my_gem', '1.0' do |s|
  # ...
  s.metadata['allowed_push_host'] = 'https://gems.my-company.example'
end
Run Code Online (Sandbox Code Playgroud)

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

gem update --system
Run Code Online (Sandbox Code Playgroud)

  • 如果您不是将私有宝石发布到服务器但仍想限制推送到RubyGems? (8认同)