class Travis::Client::AutoLogin
def authenticate
def authenticate return if (session.access_token = cli_token) github.with_token { |t| session.github_auth(t) } end
def cli_config
def cli_config @cli_config ||= YAML.load_file(@config_file) if File.exist? @config_file end
def cli_token
def cli_token result = cli_config result &&= result['endpoints'] result &&= result[session.uri] result && result['access_token'] end
def github
def github @github ||= Tools::Github.new(session.config['github']) do |g| g.explode = true g.auto_token = @auto_token g.after_tokens = proc { raise NoTokenError, 'no suitable github token found' } if @raise end end
def initialize(session, options = {})
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