Class: Kettle::Dev::ReleaseSecrets::Factory
- Inherits:
-
Object
- Object
- Kettle::Dev::ReleaseSecrets::Factory
- Defined in:
- lib/kettle/dev/release_secrets.rb
Constant Summary collapse
- ENV_KEYS =
{ "account" => "KETTLE_RELEASE_1PASSWORD_ACCOUNT", "item" => "KETTLE_RELEASE_1PASSWORD_ITEM", "gem_signing_passphrase_field" => "KETTLE_RELEASE_1PASSWORD_GEM_SIGNING_PASSPHRASE_FIELD", "rubygems_otp_field" => "KETTLE_RELEASE_1PASSWORD_RUBYGEMS_OTP_FIELD", "gem_signing_passphrase_reference" => "KETTLE_RELEASE_1PASSWORD_GEM_SIGNING_PASSPHRASE_REFERENCE", "rubygems_otp_reference" => "KETTLE_RELEASE_1PASSWORD_RUBYGEMS_OTP_REFERENCE", "gem_signing_passphrase_source" => "KETTLE_RELEASE_GEM_SIGNING_PASSPHRASE_SOURCE" }.freeze
Class Method Summary collapse
Class Method Details
.build(provider_name: nil, config: nil) ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/kettle/dev/release_secrets.rb', line 131 def self.build(provider_name: nil, config: nil) configured = config || {} name = if provider_name.to_s.empty? configured.fetch("provider", ENV.fetch("KETTLE_RELEASE_SECRETS_PROVIDER", "")) else provider_name.to_s end return Provider.new if name.empty? || name == "interactive" return OnePassword.new(env_config.merge(configured)) if OnePassword.configured?(name) raise Kettle::Dev::Error, "unsupported release secrets provider #{name.inspect}" end |
.env_config ⇒ Object
144 145 146 147 148 149 |
# File 'lib/kettle/dev/release_secrets.rb', line 144 def self.env_config ENV_KEYS.each_with_object({}) do |(key, env_key), memo| value = ENV.fetch(env_key, "").to_s memo[key] = value unless value.empty? end end |