Class: Kettle::Dev::ReleaseSecrets::BrokerClient

Inherits:
Provider
  • Object
show all
Defined in:
lib/kettle/dev/release_secrets.rb

Overview

Secret provider used by a family-owned release broker. The broker keeps all 1Password lookups in the family process; member release processes never authenticate independently.

Instance Method Summary collapse

Constructor Details

#initialize(endpoint) ⇒ BrokerClient

Returns a new instance of BrokerClient.

Raises:



36
37
38
39
# File 'lib/kettle/dev/release_secrets.rb', line 36

def initialize(endpoint)
  @endpoint = endpoint.to_s
  raise Kettle::Dev::Error, "release secrets broker endpoint is required" if @endpoint.empty?
end

Instance Method Details

#gem_signing_passphraseObject



41
42
43
44
45
# File 'lib/kettle/dev/release_secrets.rb', line 41

def gem_signing_passphrase
  return cached_gem_signing_passphrase if cached_gem_signing_passphrase?

  request("gem_signing_passphrase")
end

#keepalive!(elapsed: nil) ⇒ Object

A family broker owns authorization. Polling must never start a new authentication lookup in the member process.



53
54
55
# File 'lib/kettle/dev/release_secrets.rb', line 53

def keepalive!(elapsed: nil)
  true
end

#keepalive_required?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/kettle/dev/release_secrets.rb', line 57

def keepalive_required?
  false
end

#rubygems_otpObject



47
48
49
# File 'lib/kettle/dev/release_secrets.rb', line 47

def rubygems_otp
  request("rubygems_otp")
end