class Travis::Client::AutoLogin

Constants

NoTokenError

Attributes

session[R]

Public Class Methods

new(session, options = {}) click to toggle source
# File lib/travis/client/auto_login.rb, line 11
def initialize(session, options = {})
  @session     = session.session
  config_path  = ENV.fetch('TRAVIS_CONFIG_PATH') { File.expand_path('.travis', Dir.home) }
  @config_file = options.fetch(:config_file) { File.expand_path('config.yml', config_path) }
  @auto_token  = options.fetch(:auto_token) { true }
  @raise       = options.fetch(:raise) { true }
end

Public Instance Methods

authenticate() click to toggle source
# File lib/travis/client/auto_login.rb, line 19
def authenticate
  return unless session.access_token = cli_token
  github.with_token { |t| session.github_auth(t) }
end
cli_config() click to toggle source
# File lib/travis/client/auto_login.rb, line 40
def cli_config
  @cli_config ||= YAML.load_file(@config_file) if File.exist? @config_file
end
cli_token() click to toggle source
# File lib/travis/client/auto_login.rb, line 33
def cli_token
  result   = cli_config
  result &&= result['endpoints']
  result &&= result[session.uri]
  result &&  result['access_token']
end
github() click to toggle source
# File lib/travis/client/auto_login.rb, line 24
def github
  @github         ||= Tools::Github.new(session.config['github']) do |g|
    g.explode       = true
    g.manual_login  = false
    g.auto_token    = @auto_token
    g.after_tokens  = proc { raise NoTokenError, "no suitable github token found" } if @raise
  end
end