class Travis::CLI::ApiCommand
Attributes
enterprise_name[RW]
session[R]
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/travis/cli/api_command.rb, line 40 def initialize(*) @session = Travis::Client.new(:agent_info => "command #{command_name}") super end
Public Instance Methods
authenticate()
click to toggle source
# File lib/travis/cli/api_command.rb, line 77 def authenticate error "not logged in, please run #{command("login#{endpoint_option}")}" if access_token.nil? end
detected_endpoint?()
click to toggle source
# File lib/travis/cli/api_command.rb, line 73 def detected_endpoint? api_endpoint == detected_endpoint end
endpoint_config()
click to toggle source
# File lib/travis/cli/api_command.rb, line 45 def endpoint_config config['endpoints'] ||= {} config['endpoints'][api_endpoint] ||= {} end
enterprise?()
click to toggle source
# File lib/travis/cli/api_command.rb, line 61 def enterprise? !!endpoint_config['enterprise'] end
org?()
click to toggle source
# File lib/travis/cli/api_command.rb, line 69 def org? api_endpoint == Travis::Client::ORG_URI end
pro?()
click to toggle source
# File lib/travis/cli/api_command.rb, line 65 def pro? api_endpoint == Travis::Client::PRO_URI end
setup()
click to toggle source
# File lib/travis/cli/api_command.rb, line 50 def setup setup_enterprise self.api_endpoint = default_endpoint if default_endpoint and not explicit_api_endpoint? self.access_token ||= fetch_token endpoint_config['access_token'] ||= access_token endpoint_config['insecure'] = insecure unless insecure.nil? self.insecure = endpoint_config['insecure'] session.ssl = { :verify => false } if insecure? authenticate if pro? or enterprise? end
sync(block = true, dot = '.')
click to toggle source
# File lib/travis/cli/api_command.rb, line 81 def sync(block = true, dot = '.') user.sync steps = count = 1 while block and user.reload.syncing? count += 1 sleep(1) if count % steps == 0 steps = count/10 + 1 output.print dot end end end
Private Instance Methods
default_endpoint()
click to toggle source
# File lib/travis/cli/api_command.rb, line 153 def default_endpoint ENV['TRAVIS_ENDPOINT'] || config['default_endpoint'] end
detected_endpoint()
click to toggle source
# File lib/travis/cli/api_command.rb, line 157 def detected_endpoint default_endpoint || Travis::Client::ORG_URI end
endpoint_option()
click to toggle source
# File lib/travis/cli/api_command.rb, line 161 def endpoint_option return "" if org? and detected_endpoint? return " --org" if org? return " --pro" if pro? if config['enterprise'] key, _ = config['enterprise'].detect { |k,v| v.start_with? api_endpoint } return " -X" if key == "default" return " -X #{key}" if key end " -e %p" % api_endpoint end
fetch_token()
click to toggle source
# File lib/travis/cli/api_command.rb, line 175 def fetch_token ENV['TRAVIS_TOKEN'] || endpoint_config['access_token'] end
github_endpoint()
click to toggle source
# File lib/travis/cli/api_command.rb, line 141 def github_endpoint load_gh GH.with({}).api_host end
listen(*args) { |listener| ... }
click to toggle source
Calls superclass method
Travis::Client::Methods#listen
# File lib/travis/cli/api_command.rb, line 146 def listen(*args) super(*args) do |listener| on_signal { listener.disconnect } yield listener end end
load_gh()
click to toggle source
# File lib/travis/cli/api_command.rb, line 121 def load_gh return if defined? GH debug "Loading gh" require 'gh' gh_config = session.config['github'] gh_config &&= gh_config.inject({}) { |h,(k,v)| h.update(k.to_sym => v) } gh_config ||= {} gh_config[:ssl] = Travis::Client::Session::SSL_OPTIONS gh_config[:ssl] = { :verify => false } if gh_config[:api_url] and gh_config[:api_url] != "https://api.github.com" gh_config.delete :scopes gh_config[:instrumenter] = proc do |type, payload, &block| next block.call unless type == 'http.gh' time("GitHub API: #{payload[:verb].to_s.upcase} #{payload[:url]}", block) end if debug? GH.set(gh_config) end
setup_enterprise()
click to toggle source
# File lib/travis/cli/api_command.rb, line 98 def setup_enterprise return unless setup_enterprise? c = config['enterprise'] ||= {} c[enterprise_name] = api_endpoint if explicit_api_endpoint? c[enterprise_name] ||= write_to($stderr) do error "enterprise setup not configured" unless interactive? user_input = ask(color("Enterprise domain: ", :bold)).to_s domain = user_input[%r{^(?:https?://)?(.*?)/?(?:/api/?)?$}, 1] endpoint = "https://#{domain}/api" config['default_endpoint'] = endpoint if agree("Use #{color domain, :bold} as default endpoint? ") { |q| q.default = 'yes' } endpoint end self.api_endpoint = c[enterprise_name] self.insecure = true if insecure.nil? endpoint_config['enterprise'] = true @setup_ennterpise = true end
setup_enterprise?()
click to toggle source
# File lib/travis/cli/api_command.rb, line 116 def setup_enterprise? @setup_ennterpise ||= false !!enterprise_name and not @setup_ennterpise end