Class: Travis::Client::Repository
Defined Under Namespace
Classes: Key
Constant Summary
Constants included
from States
States::STATES
Constants inherited
from Entity
Entity::MAP
Instance Attribute Summary collapse
Attributes inherited from Entity
#attributes, #curry, #id, #session
Instance Method Summary
collapse
Methods included from States
#canceled?, #color, #created?, #errored?, #failed?, #finished?, #green?, #passed?, #pending?, #queued?, #ready?, #received?, #red?, #running?, #started?, #unsuccessful?, #yellow?
Methods inherited from Entity
#[], #[]=, aka, #attribute_names, attributes, base_path, #cancelable?, cast_id, #complete?, has, has_singleton, id?, id_field, #include?, #inspect, inspect_info, #load, many, #missing?, one, preloadable, preloadable?, relations, #relations, #reload, #restartable?, subclass_for, subclasses, time, #to_h, #update_attributes, weak?
Constructor Details
Returns a new instance of Repository.
51
52
53
54
|
# File 'lib/travis/client/repository.rb', line 51
def initialize(*)
super
attributes['active'] = attributes['private'] = attributes['admin'] = nil
end
|
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
1
2
3
|
# File 'lib/travis/client/repository.rb', line 1
def description
@description
end
|
#last_build ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/travis/client/repository.rb', line 79
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
|
#slug ⇒ Object
Returns the value of attribute slug.
1
2
3
|
# File 'lib/travis/client/repository.rb', line 1
def slug
@slug
end
|
Instance Method Details
#active? ⇒ Boolean
206
207
208
209
210
211
|
# File 'lib/travis/client/repository.rb', line 206
def active?
return active unless active.nil?
last_build_id?
end
|
#admin?(user = session.user) ⇒ Boolean
213
214
215
|
# File 'lib/travis/client/repository.rb', line 213
def admin?(user = session.user)
user.admin_access? self
end
|
#branch(name) ⇒ Object
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/travis/client/repository.rb', line 118
def branch(name)
attributes['branches'] ||= {}
attributes['branches'][name] ||= begin
if attributes['last_on_branch']
build = attributes['last_on_branch'].detect do |b|
b.commit.branch == name.to_s
end
end
build || session.get("/repos/#{id}/branches/#{name}")['branch']
end
end
|
#branches ⇒ Object
114
115
116
|
# File 'lib/travis/client/repository.rb', line 114
def branches
last_on_branch.map { |b| { b.commit.branch => b } }.inject(:merge)
end
|
#build(number) ⇒ Object
100
101
102
|
# File 'lib/travis/client/repository.rb', line 100
def build(number)
builds(number: number.to_s).first
end
|
#builds(params = nil) ⇒ Object
94
95
96
97
98
|
# File 'lib/travis/client/repository.rb', line 94
def builds(params = nil)
return each_build unless params
session.find_many(Build, params.merge(repository_id: id))
end
|
#caches(params = {}) ⇒ Object
198
199
200
|
# File 'lib/travis/client/repository.rb', line 198
def caches(params = {})
session.get("/repos/#{id}/caches", params)['caches']
end
|
#delete_caches(params = {}) ⇒ Object
202
203
204
|
# File 'lib/travis/client/repository.rb', line 202
def delete_caches(params = {})
session.delete("/repos/#{id}/caches", params)['caches']
end
|
#disable ⇒ Object
156
157
158
|
# File 'lib/travis/client/repository.rb', line 156
def disable
set_hook(false)
end
|
#each_build(params = nil, &block) ⇒ Object
130
131
132
133
134
135
136
137
138
139
140
141
|
# File 'lib/travis/client/repository.rb', line 130
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 ⇒ Object
160
161
162
|
# File 'lib/travis/client/repository.rb', line 160
def enable
set_hook(true)
end
|
#encrypt(value) ⇒ Object
74
75
76
|
# File 'lib/travis/client/repository.rb', line 74
def encrypt(value)
key.encrypt(value)
end
|
#env_vars ⇒ Object
225
226
227
|
# File 'lib/travis/client/repository.rb', line 225
def env_vars
attributes['env_vars'] ||= EnvVar::List.new(self)
end
|
#job(number) ⇒ Object
143
144
145
146
147
148
149
|
# File 'lib/travis/client/repository.rb', line 143
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 && (build.jobs.size == 1)
job
end
|
#last_on_branch(name = nil) ⇒ Object
108
109
110
111
112
|
# File 'lib/travis/client/repository.rb', line 108
def last_on_branch(name = nil)
return branch(name) if name
attributes['last_on_branch'] ||= session.get('branches', repository_id: id)['branches']
end
|
#member? ⇒ Boolean
172
173
174
|
# File 'lib/travis/client/repository.rb', line 172
def member?
session.user.repositories.include? self
end
|
#name ⇒ Object
63
64
65
|
# File 'lib/travis/client/repository.rb', line 63
def name
slug[%r{[^/]+$}]
end
|
#owner ⇒ Object
180
181
182
|
# File 'lib/travis/client/repository.rb', line 180
def owner
session.account(owner_name)
end
|
#owner_name ⇒ Object
176
177
178
|
# File 'lib/travis/client/repository.rb', line 176
def owner_name
slug[%r{^[^/]+}]
end
|
#public_key ⇒ Object
Also known as:
key
56
57
58
59
60
61
|
# File 'lib/travis/client/repository.rb', line 56
def public_key
attributes['public_key'] ||= begin
payload = session.get_raw("/repos/#{id}/key")
Key.new(payload.fetch('key'), payload['fingerprint'])
end
end
|
#public_key=(key) ⇒ Object
Also known as:
key=
67
68
69
|
# File 'lib/travis/client/repository.rb', line 67
def public_key=(key)
end
|
#pull?(user = session.user) ⇒ Boolean
221
222
223
|
# File 'lib/travis/client/repository.rb', line 221
def pull?(user = session.user)
user.pull_access? self
end
|
#push?(user = session.user) ⇒ Boolean
217
218
219
|
# File 'lib/travis/client/repository.rb', line 217
def push?(user = session.user)
user.push_access? self
end
|
#pusher_channels ⇒ Object
164
165
166
167
168
169
170
|
# File 'lib/travis/client/repository.rb', line 164
def pusher_channels
attributes['pusher_channels'] ||= if session.private_channels?
["user-#{session.user.id}", "repo-#{id}"]
else
['common']
end
end
|
#recent_builds ⇒ Object
104
105
106
|
# File 'lib/travis/client/repository.rb', line 104
def recent_builds
builds({})
end
|
#requests ⇒ Object
184
185
186
|
# File 'lib/travis/client/repository.rb', line 184
def requests
attributes['requests'] ||= session.find_many(Request, repository_id: id)
end
|
#set_hook(flag) ⇒ Object
151
152
153
154
|
# File 'lib/travis/client/repository.rb', line 151
def set_hook(flag)
result = session.put_raw('/hooks/', hook: { id:, active: flag })
result['result']
end
|
#settings ⇒ Object
188
189
190
191
192
193
194
195
196
|
# File 'lib/travis/client/repository.rb', line 188
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
|