class Travis::Client::Repository

Public Class Methods

new(*) click to toggle source
Calls superclass method Travis::Client::Entity.new
# File lib/travis/client/repository.rb, line 48
def initialize(*)
  super
  attributes['active'] = attributes['private'] = attributes['admin'] = nil
end

Public Instance Methods

active?() click to toggle source
# File lib/travis/client/repository.rb, line 195
def active?
  # TODO remove once active is properly synced and exposed by api
  return active unless active.nil?
  last_build_id?
end
admin?(user = session.user) click to toggle source
# File lib/travis/client/repository.rb, line 201
def admin?(user = session.user)
  user.admin_access? self
end
branch(name) click to toggle source
# File lib/travis/client/repository.rb, line 112
def branch(name)
  attributes['branches']       ||= {}
  attributes['branches'][name] ||= begin
    build = attributes['last_on_branch'].detect { |b| b.commit.branch == name.to_s } if attributes['last_on_branch']
    build || session.get("/repos/#{id}/branches/#{name}")['branch']
  end
end
branches() click to toggle source
# File lib/travis/client/repository.rb, line 108
def branches
  last_on_branch.map { |b| { b.commit.branch => b } }.inject(:merge)
end
build(number) click to toggle source
# File lib/travis/client/repository.rb, line 95
def build(number)
  builds(:number => number.to_s).first
end
builds(params = nil) click to toggle source
# File lib/travis/client/repository.rb, line 90
def builds(params = nil)
  return each_build unless params
  session.find_many(Build, params.merge(:repository_id => id))
end
caches(params = {}) click to toggle source
# File lib/travis/client/repository.rb, line 187
def caches(params = {})
  session.get("/repos/#{id}/caches", params)['caches']
end
delete_caches(params = {}) click to toggle source
# File lib/travis/client/repository.rb, line 191
def delete_caches(params = {})
  session.delete("/repos/#{id}/caches", params)['caches']
end
disable() click to toggle source
# File lib/travis/client/repository.rb, line 145
def disable
  set_hook(false)
end
each_build(params = nil, &block) click to toggle source
# File lib/travis/client/repository.rb, line 120
def each_build(params = nil, &block)
  return enum_for(__method__, params) unless block_given?
  params ||= {}
  chunk = builds(params)
  until chunk.empty?
    chunk.each(&block)
    number = chunk.last.number
    chunk  = number == '1' ? [] : builds(params.merge(:after_number => number))
  end
  self
end
enable() click to toggle source
# File lib/travis/client/repository.rb, line 149
def enable
  set_hook(true)
end
encrypt(value) click to toggle source
# File lib/travis/client/repository.rb, line 71
def encrypt(value)
  key.encrypt(value)
end
env_vars() click to toggle source
# File lib/travis/client/repository.rb, line 213
def env_vars
  attributes['env_vars'] ||= EnvVar::List.new(self)
end
job(number) click to toggle source
# File lib/travis/client/repository.rb, line 132
def job(number)
  build_number = number.to_s[/^\d+/] or return nil
  build        = build(build_number) or return nil
  job          = build.jobs.detect { |j| j.number == number } if number != build_number
  job        ||= build.jobs.first if build and build.jobs.size == 1
  job
end
key()
Alias for: public_key
key=(key)
Alias for: public_key=
last_build() click to toggle source

@!parse attr_reader :last_build

# File lib/travis/client/repository.rb, line 76
def last_build
  return unless last_build_id
  attributes['last_build'] ||= begin
    last_build               = session.find_one(Build, last_build_id)
    last_build.number        = last_build_number
    last_build.state         = last_build_state
    last_build.duration      = last_build_duration
    last_build.started_at    = last_build_started_at
    last_build.finished_at   = last_build_finished_at
    last_build.repository_id = id
    last_build
  end
end
last_on_branch(name = nil) click to toggle source
# File lib/travis/client/repository.rb, line 103
def last_on_branch(name = nil)
  return branch(name) if name
  attributes['last_on_branch'] ||= session.get('branches', :repository_id => id)['branches']
end
member?() click to toggle source
# File lib/travis/client/repository.rb, line 161
def member?
  session.user.repositories.include? self
end
name() click to toggle source
# File lib/travis/client/repository.rb, line 60
def name
  slug[/[^\/]+$/]
end
owner() click to toggle source
# File lib/travis/client/repository.rb, line 169
def owner
  session.account(owner_name)
end
owner_name() click to toggle source
# File lib/travis/client/repository.rb, line 165
def owner_name
  slug[/^[^\/]+/]
end
public_key() click to toggle source
# File lib/travis/client/repository.rb, line 53
def public_key
  attributes["public_key"] ||= begin
    payload = session.get_raw("/repos/#{id}/key")
    Key.new(payload.fetch('key'), payload['fingerprint'])
  end
end
Also aliased as: key
public_key=(key) click to toggle source
# File lib/travis/client/repository.rb, line 64
def public_key=(key)
  # ignored
end
Also aliased as: key=
pull?(user = session.user) click to toggle source
# File lib/travis/client/repository.rb, line 209
def pull?(user = session.user)
  user.pull_access? self
end
push?(user = session.user) click to toggle source
# File lib/travis/client/repository.rb, line 205
def push?(user = session.user)
  user.push_access? self
end
pusher_channels() click to toggle source
# File lib/travis/client/repository.rb, line 153
def pusher_channels
  attributes['pusher_channels'] ||= if session.private_channels?
    ["user-#{session.user.id}", "repo-#{id}"]
  else
    ["common"]
  end
end
recent_builds() click to toggle source
# File lib/travis/client/repository.rb, line 99
def recent_builds
  builds({})
end
requests() click to toggle source
# File lib/travis/client/repository.rb, line 173
def requests
  attributes['requests'] ||= session.find_many(Request, :repository_id => id)
end
set_hook(flag) click to toggle source
# File lib/travis/client/repository.rb, line 140
def set_hook(flag)
  result = session.put_raw('/hooks/', :hook => { :id => id, :active => flag })
  result['result']
end
settings() click to toggle source
# File lib/travis/client/repository.rb, line 177
def settings
  attributes['settings'] ||= begin
    settings = session.get("/repos/#{id}/settings")['settings']
    settings.repository = self
    settings
  end
rescue Travis::Client::NotFound
  raise Travis::Client::Error, "not allowed to access settings"
end

Private Instance Methods

state() click to toggle source
# File lib/travis/client/repository.rb, line 219
def state
  last_build_state
end