147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
# File 'lib/kettle/family/secrets.rb', line 147
def self.build(config:, override_provider: nil)
if defined?(Kettle::Dev::ReleaseSecrets)
secrets_config = config.release_secrets
provider_name = override_provider.to_s.empty? ? secrets_config.fetch("provider", nil) : override_provider
return Provider.new if provider_name.to_s.empty? || provider_name.to_s == "interactive"
return OnePassword.new(Kettle::Dev::ReleaseSecrets::Factory.env_config.merge(secrets_config)) if OnePassword.configured?(provider_name)
raise Error, "unsupported release secrets provider #{provider_name.inspect}"
end
secrets_config = config.release_secrets
provider_name = override_provider.to_s.empty? ? secrets_config.fetch("provider", nil) : override_provider
return Provider.new if provider_name.to_s.empty? || provider_name.to_s == "interactive"
return OnePassword.new(secrets_config) if OnePassword.configured?(provider_name)
raise Error, "unsupported release secrets provider #{provider_name.inspect}"
rescue => error
if defined?(Kettle::Dev::Error) && error.is_a?(Kettle::Dev::Error)
raise Error, error.message
end
raise
end
|