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
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