Module: Rake::GemMaintenance::Repos

Defined in:
lib/rake/gem/maintenance/repos.rb

Overview

Pre-configured gem repository configurations for common setups.

Examples:

Use internal-only repos

Rake::GemMaintenance::UpgradeTask.new do |t|
  t.gem_repositories = Rake::GemMaintenance::Repos.internal
end

Use both rubygems.org and internal repos

Rake::GemMaintenance::UpgradeTask.new do |t|
  t.gem_repositories = Rake::GemMaintenance::Repos.all
end

Use local geminabox only

Rake::GemMaintenance::GeminaboxUpgradeTask.new

Dual publishing: geminabox + rubygems.org

Rake::GemMaintenance::UpgradeTask.new do |t|
  t.gem_repositories = Rake::GemMaintenance::Repos.geminabox +
                       Rake::GemMaintenance::Repos.rubygems
end

Reconfigure internal URL

Rake::GemMaintenance::Repos.internal_url = "https://my-internal-gem.example.com"

Configure API key and TOTP seed env vars

Rake::GemMaintenance::Repos.rubygems_api_key_env_var = "GEM_HOST_API_KEY"
Rake::GemMaintenance::Repos.rubygems_otp_seed_env_var = "RUBYGEMS_OTP_SEED"
Rake::GemMaintenance::Repos.geminabox_url = "http://localhost:9292"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.geminabox_api_key_env_varObject

Returns the value of attribute geminabox_api_key_env_var.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def geminabox_api_key_env_var
  @geminabox_api_key_env_var
end

.geminabox_otp_seed_env_varObject

Returns the value of attribute geminabox_otp_seed_env_var.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def geminabox_otp_seed_env_var
  @geminabox_otp_seed_env_var
end

.geminabox_urlObject

Returns the value of attribute geminabox_url.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def geminabox_url
  @geminabox_url
end

.internal_api_key_env_varObject

Returns the value of attribute internal_api_key_env_var.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def internal_api_key_env_var
  @internal_api_key_env_var
end

.internal_otp_seed_env_varObject

Returns the value of attribute internal_otp_seed_env_var.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def internal_otp_seed_env_var
  @internal_otp_seed_env_var
end

.internal_urlObject

Returns the value of attribute internal_url.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def internal_url
  @internal_url
end

.rubygems_api_key_env_varObject

Returns the value of attribute rubygems_api_key_env_var.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def rubygems_api_key_env_var
  @rubygems_api_key_env_var
end

.rubygems_otp_seed_env_varObject

Returns the value of attribute rubygems_otp_seed_env_var.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def rubygems_otp_seed_env_var
  @rubygems_otp_seed_env_var
end

.rubygems_urlObject

Returns the value of attribute rubygems_url.



47
48
49
# File 'lib/rake/gem/maintenance/repos.rb', line 47

def rubygems_url
  @rubygems_url
end

Class Method Details

.allArray<Hash>

Publish to both rubygems.org and internal repository

Returns:

  • (Array<Hash>)

    repository configuration



65
66
67
# File 'lib/rake/gem/maintenance/repos.rb', line 65

def self.all
  rubygems + internal
end

.defaultArray<Hash>

Default configuration: rubygems.org only

Returns:

  • (Array<Hash>)

    repository configuration



89
90
91
# File 'lib/rake/gem/maintenance/repos.rb', line 89

def self.default
  rubygems
end

.geminaboxArray<Hash>

Publish only to a local geminabox instance

Returns:

  • (Array<Hash>)

    repository configuration



80
81
82
83
84
85
# File 'lib/rake/gem/maintenance/repos.rb', line 80

def self.geminabox
  base = { name: "geminabox", url: geminabox_url }
  base[:api_key_env_var] = geminabox_api_key_env_var if geminabox_api_key_env_var
  base[:otp_seed_env_var] = geminabox_otp_seed_env_var if geminabox_otp_seed_env_var
  [base]
end

.internalArray<Hash>

Publish only to internal repository

Returns:

  • (Array<Hash>)

    repository configuration



56
57
58
59
60
61
# File 'lib/rake/gem/maintenance/repos.rb', line 56

def self.internal
  base = { name: "cbp-org", url: internal_url }
  base[:api_key_env_var] = internal_api_key_env_var if internal_api_key_env_var
  base[:otp_seed_env_var] = internal_otp_seed_env_var if internal_otp_seed_env_var
  [base]
end

.rubygemsArray<Hash>

Publish only to rubygems.org (the default)

Returns:

  • (Array<Hash>)

    repository configuration



71
72
73
74
75
76
# File 'lib/rake/gem/maintenance/repos.rb', line 71

def self.rubygems
  base = { name: "rubygems", url: rubygems_url }
  base[:api_key_env_var] = rubygems_api_key_env_var if rubygems_api_key_env_var
  base[:otp_seed_env_var] = rubygems_otp_seed_env_var if rubygems_otp_seed_env_var
  [base]
end