class Gitomator::Travis::CIProvider

Public Class Methods

from_config(config = {}) click to toggle source

@param config [Hash<String,Object>] @return [Gitomator::GitHub::HostingProvider] GitHub hosting provider.

# File lib/gitomator/travis/ci_provider.rb, line 19
def self.from_config(config = {})
  config = config.map {|k,v| [k.to_s, v] } .to_h

  if config['provider'] == 'travis'
    uri = ::Travis::Client::ORG_URI
  elsif config['provider'] == 'travis_pro'
    uri = ::Travis::Client::PRO_URI
  else
    raise "Invalid Travis CI provider name, #{config['provider']}."
  end

  if config['access_token']
    access_token = config['access_token']
  elsif config['github_access_token']
    access_token = ::Travis.github_auth(config['github_access_token'])
  else
    raise "Invalid Travis CI provider config - #{config}"
  end

  travis_client = ::Travis::Client.new({:uri => uri, :access_token => access_token })
  return new(travis_client, config['github_organization'])
end
new(travis_client, github_organization, opts={}) click to toggle source

@param travis_client [Travis::Client::Session] @param github_organization [String] - Default GitHub organization

# File lib/gitomator/travis/ci_provider.rb, line 50
def initialize(travis_client, github_organization, opts={})
  raise "Travis client is nil" if travis_client.nil?
  @travis = travis_client
  @org = github_organization
  @repo_name_resolver = Gitomator::Util::Repo::NameResolver.new(@org)
end

Public Instance Methods

_find_repo_and_execute_block(repo) { |repo(full_name)| ... } click to toggle source
# File lib/gitomator/travis/ci_provider.rb, line 62
def _find_repo_and_execute_block(repo)
  begin
    yield @travis.repo(@repo_name_resolver.full_name(repo))
  rescue ::Travis::Client::NotFound
    return nil
  end
end
ci_enabled?(repo) click to toggle source
# File lib/gitomator/travis/ci_provider.rb, line 79
def ci_enabled?(repo)
  _find_repo_and_execute_block(repo) {|r| r.reload.active? }
end
disable_ci(repo, opts={}) click to toggle source
# File lib/gitomator/travis/ci_provider.rb, line 75
def disable_ci(repo, opts={})
  _find_repo_and_execute_block(repo) {|r| r.disable}
end
enable_ci(repo, opts={}) click to toggle source
# File lib/gitomator/travis/ci_provider.rb, line 71
def enable_ci(repo, opts={})
  _find_repo_and_execute_block(repo) {|r| r.enable}
end
name() click to toggle source
# File lib/gitomator/travis/ci_provider.rb, line 57
def name
  :travis
end
sync(blocking=false, opts={}) click to toggle source

@param blocking [Boolean]

# File lib/gitomator/travis/ci_provider.rb, line 88
def sync(blocking=false, opts={})
  @travis.user.sync()
  while blocking && syncing?
    sleep(1)
  end
end
syncing?(opts={}) click to toggle source

@return Boolean - Indicates whether a sync' is currently in progress.

# File lib/gitomator/travis/ci_provider.rb, line 99
def syncing?(opts={})
  @travis.user.reload.syncing?
end