class Tagfish::CredentialStore

Public Class Methods

new(docker_config_data) click to toggle source
# File lib/tagfish/credential_store.rb, line 8
def initialize(docker_config_data)
  @credentials_by_registry = {}
  auths = docker_config_data.fetch("auths", {})
  auths.each do |registry, data|
    registry = registry_address(registry)
    encoded_credentials = data.fetch("auth")
    username, password = Base64.decode64(encoded_credentials).split(":")
    creds = RegistryCredentials.new(username, password)
    @credentials_by_registry[registry] = creds
  end
end

Public Instance Methods

credentials_for(registry) click to toggle source
# File lib/tagfish/credential_store.rb, line 20
def credentials_for(registry)
  registry = registry_address(registry)
  @credentials_by_registry[registry]
end

Private Instance Methods

registry_address(registry) click to toggle source
# File lib/tagfish/credential_store.rb, line 27
def registry_address(registry)
  registry.sub(%r{^\w+://}, '').sub(%r{/.*}, '')
end