travis 1.11.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +18 -4
- data/Rakefile +22 -20
- data/bin/travis +5 -3
- data/examples/org_overview.rb +2 -0
- data/examples/pro_auth.rb +3 -1
- data/examples/stream.rb +5 -3
- data/lib/travis/auto_login.rb +2 -0
- data/lib/travis/cli/accounts.rb +12 -9
- data/lib/travis/cli/api_command.rb +85 -81
- data/lib/travis/cli/branches.rb +8 -6
- data/lib/travis/cli/cache.rb +48 -44
- data/lib/travis/cli/cancel.rb +4 -2
- data/lib/travis/cli/command.rb +170 -142
- data/lib/travis/cli/console.rb +5 -5
- data/lib/travis/cli/disable.rb +4 -2
- data/lib/travis/cli/enable.rb +14 -12
- data/lib/travis/cli/encrypt.rb +57 -57
- data/lib/travis/cli/encrypt_file.rb +29 -18
- data/lib/travis/cli/endpoint.rb +9 -7
- data/lib/travis/cli/env.rb +13 -8
- data/lib/travis/cli/help.rb +10 -8
- data/lib/travis/cli/history.rb +19 -15
- data/lib/travis/cli/init.rb +27 -24
- data/lib/travis/cli/lint.rb +10 -8
- data/lib/travis/cli/login.rb +17 -11
- data/lib/travis/cli/logout.rb +4 -2
- data/lib/travis/cli/logs.rb +28 -19
- data/lib/travis/cli/monitor.rb +11 -8
- data/lib/travis/cli/open.rb +17 -14
- data/lib/travis/cli/parser.rb +2 -0
- data/lib/travis/cli/pubkey.rb +13 -11
- data/lib/travis/cli/raw.rb +4 -3
- data/lib/travis/cli/repo_command.rb +123 -112
- data/lib/travis/cli/report.rb +40 -33
- data/lib/travis/cli/repos.rb +14 -9
- data/lib/travis/cli/requests.rb +13 -12
- data/lib/travis/cli/restart.rb +4 -2
- data/lib/travis/cli/settings.rb +41 -35
- data/lib/travis/cli/setup/anynines.rb +7 -6
- data/lib/travis/cli/setup/appfog.rb +6 -4
- data/lib/travis/cli/setup/artifacts.rb +7 -5
- data/lib/travis/cli/setup/biicode.rb +6 -4
- data/lib/travis/cli/setup/cloud_66.rb +6 -4
- data/lib/travis/cli/setup/cloud_control.rb +8 -6
- data/lib/travis/cli/setup/cloud_files.rb +7 -5
- data/lib/travis/cli/setup/cloud_foundry.rb +9 -7
- data/lib/travis/cli/setup/code_deploy.rb +33 -29
- data/lib/travis/cli/setup/deis.rb +8 -6
- data/lib/travis/cli/setup/divshot.rb +20 -18
- data/lib/travis/cli/setup/elastic_beanstalk.rb +10 -8
- data/lib/travis/cli/setup/engine_yard.rb +9 -7
- data/lib/travis/cli/setup/gcs.rb +9 -7
- data/lib/travis/cli/setup/hackage.rb +6 -4
- data/lib/travis/cli/setup/heroku.rb +10 -4
- data/lib/travis/cli/setup/modulus.rb +5 -3
- data/lib/travis/cli/setup/ninefold.rb +7 -5
- data/lib/travis/cli/setup/nodejitsu.rb +6 -4
- data/lib/travis/cli/setup/npm.rb +6 -4
- data/lib/travis/cli/setup/open_shift.rb +8 -6
- data/lib/travis/cli/setup/opsworks.rb +24 -22
- data/lib/travis/cli/setup/pypi.rb +7 -5
- data/lib/travis/cli/setup/releases.rb +6 -6
- data/lib/travis/cli/setup/ruby_gems.rb +7 -5
- data/lib/travis/cli/setup/s3.rb +12 -8
- data/lib/travis/cli/setup/sauce_connect.rb +7 -5
- data/lib/travis/cli/setup/service.rb +36 -25
- data/lib/travis/cli/setup.rb +7 -3
- data/lib/travis/cli/show.rb +10 -8
- data/lib/travis/cli/sshkey.rb +31 -28
- data/lib/travis/cli/status.rb +5 -3
- data/lib/travis/cli/sync.rb +9 -7
- data/lib/travis/cli/token.rb +4 -2
- data/lib/travis/cli/version.rb +4 -3
- data/lib/travis/cli/whatsup.rb +10 -8
- data/lib/travis/cli/whoami.rb +2 -2
- data/lib/travis/cli.rb +39 -36
- data/lib/travis/client/account.rb +8 -6
- data/lib/travis/client/artifact.rb +16 -12
- data/lib/travis/client/auto_login.rb +7 -4
- data/lib/travis/client/broadcast.rb +2 -0
- data/lib/travis/client/build.rb +7 -3
- data/lib/travis/client/cache.rb +4 -2
- data/lib/travis/client/commit.rb +5 -2
- data/lib/travis/client/entity.rb +50 -46
- data/lib/travis/client/env_var.rb +13 -8
- data/lib/travis/client/error.rb +5 -3
- data/lib/travis/client/has_uuid.rb +3 -1
- data/lib/travis/client/job.rb +8 -3
- data/lib/travis/client/lint_result.rb +2 -0
- data/lib/travis/client/listener.rb +70 -55
- data/lib/travis/client/methods.rb +10 -5
- data/lib/travis/client/namespace.rb +20 -16
- data/lib/travis/client/not_loadable.rb +3 -1
- data/lib/travis/client/repository.rb +34 -22
- data/lib/travis/client/request.rb +5 -2
- data/lib/travis/client/restartable.rb +2 -0
- data/lib/travis/client/session.rb +118 -88
- data/lib/travis/client/settings.rb +8 -3
- data/lib/travis/client/singleton_setting.rb +2 -0
- data/lib/travis/client/ssh_key.rb +2 -0
- data/lib/travis/client/states.rb +8 -6
- data/lib/travis/client/user.rb +2 -0
- data/lib/travis/client/weak_entity.rb +6 -3
- data/lib/travis/client.rb +4 -1
- data/lib/travis/pro/auto_login.rb +2 -0
- data/lib/travis/pro.rb +2 -0
- data/lib/travis/tools/assets.rb +6 -3
- data/lib/travis/tools/completion.rb +10 -6
- data/lib/travis/tools/formatter.rb +20 -14
- data/lib/travis/tools/github.rb +59 -49
- data/lib/travis/tools/notification.rb +18 -13
- data/lib/travis/tools/safe_string.rb +4 -1
- data/lib/travis/tools/ssl_key.rb +5 -2
- data/lib/travis/tools/system.rb +11 -6
- data/lib/travis/version.rb +3 -1
- data/lib/travis.rb +3 -1
- data/spec/cli/api_command_spec.rb +11 -8
- data/spec/cli/cancel_spec.rb +2 -4
- data/spec/cli/encrypt_file_spec.rb +9 -7
- data/spec/cli/encrypt_spec.rb +19 -17
- data/spec/cli/endpoint_spec.rb +12 -10
- data/spec/cli/help_spec.rb +14 -12
- data/spec/cli/history_spec.rb +2 -0
- data/spec/cli/init_spec.rb +35 -33
- data/spec/cli/logs_spec.rb +2 -0
- data/spec/cli/open_spec.rb +6 -4
- data/spec/cli/repo_command_spec.rb +8 -4
- data/spec/cli/restart_spec.rb +2 -4
- data/spec/cli/setup/service_spec.rb +17 -18
- data/spec/cli/setup_spec.rb +2 -4
- data/spec/cli/show_spec.rb +4 -2
- data/spec/cli/status_spec.rb +7 -5
- data/spec/cli/token_spec.rb +7 -5
- data/spec/cli/version_spec.rb +2 -0
- data/spec/cli/whoami_spec.rb +9 -7
- data/spec/client/account_spec.rb +28 -20
- data/spec/client/auto_login_spec.rb +12 -9
- data/spec/client/broadcast_spec.rb +5 -3
- data/spec/client/build_spec.rb +28 -24
- data/spec/client/commit_spec.rb +17 -14
- data/spec/client/job_spec.rb +27 -23
- data/spec/client/methods_spec.rb +8 -4
- data/spec/client/namespace_spec.rb +8 -4
- data/spec/client/repository_spec.rb +33 -30
- data/spec/client/session_spec.rb +71 -67
- data/spec/client/user_spec.rb +13 -10
- data/spec/client_spec.rb +6 -4
- data/spec/pro_spec.rb +5 -3
- data/spec/spec_helper.rb +3 -1
- data/spec/support/fake_api.rb +662 -662
- data/spec/support/fake_github.rb +6 -3
- data/spec/support/helpers.rb +13 -8
- data/spec/travis_spec.rb +5 -3
- data/travis.gemspec +400 -399
- metadata +30 -50
@@ -1,12 +1,13 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'travis/client'
|
3
4
|
require 'travis/tools/safe_string'
|
4
5
|
|
5
6
|
module Travis
|
6
7
|
module Client
|
7
8
|
class Artifact < Entity
|
8
|
-
CHUNKED =
|
9
|
-
TEXT = "#{CHUNKED}, text/plain"
|
9
|
+
CHUNKED = 'application/json; chunked=true; version=2, application/json; version=2'
|
10
|
+
TEXT = "#{CHUNKED}, text/plain".freeze
|
10
11
|
|
11
12
|
# @!parse attr_reader :job_id, :type, :body
|
12
13
|
attributes :job_id, :type, :body
|
@@ -15,11 +16,12 @@ module Travis
|
|
15
16
|
has :job
|
16
17
|
|
17
18
|
def delete_body(reason = {})
|
18
|
-
reason = { :
|
19
|
+
reason = { reason: } unless reason.is_a? Hash
|
19
20
|
session.patch_raw("jobs/#{job_id}/log", reason)
|
20
21
|
reload
|
21
|
-
rescue Travis::Client::Error =>
|
22
|
-
raise unless
|
22
|
+
rescue Travis::Client::Error => e
|
23
|
+
raise unless e.message == '409'
|
24
|
+
|
23
25
|
self
|
24
26
|
end
|
25
27
|
|
@@ -39,32 +41,34 @@ module Travis
|
|
39
41
|
attributes['current_body'] ||= begin
|
40
42
|
body = load_attribute('body')
|
41
43
|
if body.to_s.empty?
|
42
|
-
log = session.get_raw("jobs/#{job_id}/log", nil,
|
43
|
-
body = String
|
44
|
+
log = session.get_raw("jobs/#{job_id}/log", nil, 'Accept' => TEXT)
|
45
|
+
body = log.is_a?(String) ? log : log['log']['body']
|
44
46
|
end
|
45
47
|
body
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
49
51
|
def body(stream = block_given?)
|
50
|
-
return current_body unless block_given?
|
51
|
-
return yield(current_body) unless stream
|
52
|
+
return current_body unless block_given? || stream
|
53
|
+
return yield(current_body) unless stream && job.pending?
|
54
|
+
|
52
55
|
number = 0
|
53
56
|
|
54
57
|
session.listen(self) do |listener|
|
55
58
|
listener.on 'job:log' do |event|
|
56
59
|
next unless event.payload['number'] > number
|
60
|
+
|
57
61
|
number = event.payload['number']
|
58
62
|
yield event.payload['_log']
|
59
63
|
listener.disconnect if event.payload['final']
|
60
64
|
end
|
61
65
|
|
62
|
-
listener.on 'job:finished' do |
|
66
|
+
listener.on 'job:finished' do |_event|
|
63
67
|
listener.disconnect
|
64
68
|
end
|
65
69
|
|
66
70
|
listener.on_connect do
|
67
|
-
data = session.get_raw("/logs/#{id}", nil,
|
71
|
+
data = session.get_raw("/logs/#{id}", nil, 'Accept' => CHUNKED)['log']
|
68
72
|
if data['parts']
|
69
73
|
data['parts'].each { |p| yield p['content'] }
|
70
74
|
number = data['parts'].last['number'] if data['parts'].any?
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
require 'travis/tools/github'
|
3
5
|
require 'yaml'
|
@@ -12,12 +14,13 @@ module Travis
|
|
12
14
|
@session = session.session
|
13
15
|
config_path = ENV.fetch('TRAVIS_CONFIG_PATH') { File.expand_path('.travis', Dir.home) }
|
14
16
|
@config_file = options.fetch(:config_file) { File.expand_path('config.yml', config_path) }
|
15
|
-
@auto_token = options.fetch(:auto_token
|
16
|
-
@raise = options.fetch(:raise
|
17
|
+
@auto_token = options.fetch(:auto_token, true)
|
18
|
+
@raise = options.fetch(:raise, true)
|
17
19
|
end
|
18
20
|
|
19
21
|
def authenticate
|
20
|
-
return if session.access_token = cli_token
|
22
|
+
return if (session.access_token = cli_token)
|
23
|
+
|
21
24
|
github.with_token { |t| session.github_auth(t) }
|
22
25
|
end
|
23
26
|
|
@@ -25,7 +28,7 @@ module Travis
|
|
25
28
|
@github ||= Tools::Github.new(session.config['github']) do |g|
|
26
29
|
g.explode = true
|
27
30
|
g.auto_token = @auto_token
|
28
|
-
g.after_tokens = proc { raise NoTokenError,
|
31
|
+
g.after_tokens = proc { raise NoTokenError, 'no suitable github token found' } if @raise
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
data/lib/travis/client/build.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
|
3
5
|
module Travis
|
4
6
|
module Client
|
5
7
|
class Build < Entity
|
6
|
-
include
|
8
|
+
include Restartable
|
9
|
+
include States
|
7
10
|
preloadable
|
8
11
|
|
9
12
|
# @!parse attr_reader :repository_id, :commit_id, :number, :pull_request, :pull_request_number, :pull_request_title, :config, :state, :started_at, :finished_at, :duration, :job_ids
|
10
|
-
attributes :repository_id, :commit_id, :number, :pull_request, :pull_request_number, :pull_request_title,
|
13
|
+
attributes :repository_id, :commit_id, :number, :pull_request, :pull_request_number, :pull_request_title,
|
14
|
+
:config, :state, :started_at, :finished_at, :duration, :job_ids
|
11
15
|
time :started_at, :finished_at
|
12
16
|
|
13
17
|
alias pull_request? pull_request
|
@@ -27,7 +31,7 @@ module Travis
|
|
27
31
|
end
|
28
32
|
|
29
33
|
def push?
|
30
|
-
|
34
|
+
!pull_request?
|
31
35
|
end
|
32
36
|
|
33
37
|
def branch_info
|
data/lib/travis/client/cache.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client/weak_entity'
|
2
4
|
|
3
5
|
module Travis
|
@@ -14,11 +16,11 @@ module Travis
|
|
14
16
|
many :caches
|
15
17
|
|
16
18
|
def delete
|
17
|
-
repository.delete_caches(
|
19
|
+
repository.delete_caches(branch:, match: slug)
|
18
20
|
end
|
19
21
|
|
20
22
|
def inspect_info
|
21
|
-
[repository.slug, branch, slug].compact.join(
|
23
|
+
[repository.slug, branch, slug].compact.join(' ')
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
data/lib/travis/client/commit.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
|
3
5
|
module Travis
|
@@ -6,7 +8,8 @@ module Travis
|
|
6
8
|
include NotLoadable
|
7
9
|
|
8
10
|
# @!parse attr_reader :sha, :branch, :message, :committed_at, :author_name, :author_email, :committer_name, :committer_email, :compare_url
|
9
|
-
attributes :sha, :branch, :message, :committed_at, :author_name, :author_email, :committer_name,
|
11
|
+
attributes :sha, :branch, :message, :committed_at, :author_name, :author_email, :committer_name,
|
12
|
+
:committer_email, :compare_url
|
10
13
|
time :committed_at
|
11
14
|
|
12
15
|
one :commit
|
@@ -21,7 +24,7 @@ module Travis
|
|
21
24
|
end
|
22
25
|
|
23
26
|
def inspect_info
|
24
|
-
short_sha
|
27
|
+
"#{short_sha} #{subject.inspect}"
|
25
28
|
end
|
26
29
|
end
|
27
30
|
end
|
data/lib/travis/client/entity.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
require 'time'
|
3
5
|
|
@@ -48,7 +50,7 @@ module Travis
|
|
48
50
|
|
49
51
|
list.each do |name|
|
50
52
|
name = name.to_s
|
51
|
-
|
53
|
+
raise "can't call an attribute id" if name == 'id'
|
52
54
|
|
53
55
|
@attributes << name
|
54
56
|
define_method(name) { load_attribute(name) }
|
@@ -111,6 +113,7 @@ module Travis
|
|
111
113
|
|
112
114
|
def initialize(session, id)
|
113
115
|
raise Travis::Client::Error, '%p is not a valid id' % id unless self.class.id? id
|
116
|
+
|
114
117
|
@attributes = {}
|
115
118
|
@session = session
|
116
119
|
@id = self.class.cast_id(id) if id
|
@@ -155,6 +158,7 @@ module Travis
|
|
155
158
|
|
156
159
|
def missing?(key)
|
157
160
|
return false unless include? key
|
161
|
+
|
158
162
|
!attributes.include?(key.to_s)
|
159
163
|
end
|
160
164
|
|
@@ -164,7 +168,7 @@ module Travis
|
|
164
168
|
|
165
169
|
def inspect
|
166
170
|
klass = self.class
|
167
|
-
klass = curry if curry
|
171
|
+
klass = curry if curry&.name && curry.to_s.size < klass.to_s.size
|
168
172
|
"#<#{klass}: #{inspect_info}>"
|
169
173
|
end
|
170
174
|
|
@@ -182,57 +186,57 @@ module Travis
|
|
182
186
|
|
183
187
|
private
|
184
188
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
end
|
193
|
-
else
|
194
|
-
id = send("#{name}_id")
|
195
|
-
session.find_one(entity, id) unless id.nil?
|
189
|
+
def relation(name)
|
190
|
+
name = name.to_s
|
191
|
+
entity = Entity.subclass_for(name)
|
192
|
+
|
193
|
+
if entity.many == name
|
194
|
+
Array(send("#{entity.one}_ids")).map do |id|
|
195
|
+
session.find_one(entity, id)
|
196
196
|
end
|
197
|
+
else
|
198
|
+
id = send("#{name}_id")
|
199
|
+
session.find_one(entity, id) unless id.nil?
|
197
200
|
end
|
201
|
+
end
|
198
202
|
|
199
|
-
|
200
|
-
|
201
|
-
|
203
|
+
def inspect_info
|
204
|
+
id
|
205
|
+
end
|
202
206
|
|
203
|
-
|
204
|
-
|
205
|
-
|
207
|
+
def set_attribute(name, value)
|
208
|
+
attributes[name.to_s] = value
|
209
|
+
end
|
206
210
|
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
+
def load_attribute(name)
|
212
|
+
session.reload(self) if missing? name
|
213
|
+
attributes[name.to_s]
|
214
|
+
end
|
211
215
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
end
|
231
|
-
rescue ArgumentError => boom
|
232
|
-
raise boom
|
233
|
-
rescue Exception
|
234
|
-
raise ArgumentError, "unable to convert #{value.inspect} to a Time object"
|
216
|
+
# shamelessly stolen from sinatra
|
217
|
+
def time(value)
|
218
|
+
if value.respond_to? :to_time
|
219
|
+
value.to_time
|
220
|
+
elsif value.is_a? Time
|
221
|
+
value
|
222
|
+
elsif value.respond_to? :new_offset
|
223
|
+
d = value.new_offset 0
|
224
|
+
t = Time.utc d.year, d.mon, d.mday, d.hour, d.min, d.sec + d.sec_fraction
|
225
|
+
t.getlocal
|
226
|
+
elsif value.respond_to? :mday
|
227
|
+
Time.local(value.year, value.mon, value.mday)
|
228
|
+
elsif value.is_a? Numeric
|
229
|
+
Time.at value
|
230
|
+
elsif value.nil? || value.empty?
|
231
|
+
nil
|
232
|
+
else
|
233
|
+
Time.parse value.to_s
|
235
234
|
end
|
235
|
+
rescue ArgumentError => e
|
236
|
+
raise e
|
237
|
+
rescue Exception
|
238
|
+
raise ArgumentError, "unable to convert #{value.inspect} to a Time object"
|
239
|
+
end
|
236
240
|
end
|
237
241
|
end
|
238
242
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
require 'delegate'
|
3
5
|
|
@@ -35,7 +37,7 @@ module Travis
|
|
35
37
|
end
|
36
38
|
|
37
39
|
def add(name, value, options = {})
|
38
|
-
body = JSON.dump(:
|
40
|
+
body = JSON.dump(env_var: options.merge(name:, value:))
|
39
41
|
result = session.post(EnvVar.path(self), body)
|
40
42
|
self.list += [result['env_var']]
|
41
43
|
end
|
@@ -43,8 +45,8 @@ module Travis
|
|
43
45
|
def upsert(name, value, options = {})
|
44
46
|
entries = select { |e| e.name == name }
|
45
47
|
if entries.any?
|
46
|
-
entries.first.update(options.merge(:
|
47
|
-
entries[1
|
48
|
+
entries.first.update(options.merge(value:))
|
49
|
+
entries[1..].each { |e| e.delete }
|
48
50
|
else
|
49
51
|
add(name, value, options)
|
50
52
|
end
|
@@ -53,11 +55,13 @@ module Travis
|
|
53
55
|
|
54
56
|
def [](key)
|
55
57
|
return super if key.is_a? Integer
|
58
|
+
|
56
59
|
detect { |e| e.name == key.to_s }
|
57
60
|
end
|
58
61
|
|
59
62
|
def []=(key, value)
|
60
63
|
return super if key.is_a? Integer
|
64
|
+
|
61
65
|
upsert(key.to_s, value)
|
62
66
|
end
|
63
67
|
|
@@ -65,8 +69,9 @@ module Travis
|
|
65
69
|
end
|
66
70
|
|
67
71
|
def self.path(object)
|
68
|
-
repository_id = Repository
|
69
|
-
raise
|
72
|
+
repository_id = object.is_a?(Repository) ? object.id : object.repository_id
|
73
|
+
raise 'repository unknown' unless repository_id
|
74
|
+
|
70
75
|
"/settings/env_vars/#{object.id if object.is_a? EnvVar}?repository_id=#{repository_id}"
|
71
76
|
end
|
72
77
|
|
@@ -82,8 +87,8 @@ module Travis
|
|
82
87
|
has :repository
|
83
88
|
|
84
89
|
def update(options)
|
85
|
-
options = { :
|
86
|
-
result = session.patch(EnvVar.path(self), JSON.dump(:
|
90
|
+
options = { value: options } unless options.is_a? Hash
|
91
|
+
result = session.patch(EnvVar.path(self), JSON.dump(env_var: options))
|
87
92
|
attributes.replace(result['env_var'].attributes)
|
88
93
|
self
|
89
94
|
end
|
@@ -95,7 +100,7 @@ module Travis
|
|
95
100
|
end
|
96
101
|
|
97
102
|
def inspect_info
|
98
|
-
"#{name}=#{value ? value.inspect :
|
103
|
+
"#{name}=#{value ? value.inspect : '[secure]'}"
|
99
104
|
end
|
100
105
|
end
|
101
106
|
end
|
data/lib/travis/client/error.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
|
3
5
|
module Travis
|
@@ -25,7 +27,7 @@ module Travis
|
|
25
27
|
|
26
28
|
class AssetNotFound < Error
|
27
29
|
def initialize(file, *args)
|
28
|
-
if md = file.match(%r
|
30
|
+
if (md = file.match(%r{init/(?<lang>[^.]+)\.yml$}))
|
29
31
|
super "unknown language #{md[:lang]}", *args
|
30
32
|
else
|
31
33
|
super file, *args
|
@@ -42,9 +44,9 @@ module Travis
|
|
42
44
|
end
|
43
45
|
|
44
46
|
def parse_message(message)
|
45
|
-
response = JSON.
|
47
|
+
response = JSON.parse(message)
|
46
48
|
message = response['message'].to_s
|
47
|
-
if @errors = response['errors']
|
49
|
+
if (@errors = response['errors']) && @errors.any?
|
48
50
|
readable = @errors.map { |e| "#{e['field']}: #{e['code'].gsub('_', ' ')}" }
|
49
51
|
message += " (#{readable.join(', ')})"
|
50
52
|
end
|
data/lib/travis/client/job.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'travis/client'
|
2
4
|
|
3
5
|
module Travis
|
4
6
|
module Client
|
5
7
|
class Job < Entity
|
6
|
-
include
|
8
|
+
include Restartable
|
9
|
+
include States
|
7
10
|
preloadable
|
8
11
|
|
9
12
|
# @!parse attr_reader :repository_id, :build_id, :commit_id, :log_id, :number, :config, :state, :started_at, :finished_at, :queue, :allow_failure, :tags
|
10
|
-
attributes :repository_id, :build_id, :commit_id, :log_id, :number, :config, :state, :started_at, :finished_at,
|
13
|
+
attributes :repository_id, :build_id, :commit_id, :log_id, :number, :config, :state, :started_at, :finished_at,
|
14
|
+
:queue, :allow_failure, :tags
|
11
15
|
time :started_at, :finished_at
|
12
16
|
|
13
17
|
alias allow_failure? allow_failure
|
@@ -31,7 +35,8 @@ module Travis
|
|
31
35
|
end
|
32
36
|
|
33
37
|
def allow_failures?
|
34
|
-
return false unless config.include?
|
38
|
+
return false unless config.include?('matrix') && config['matrix'].include?('allow_failures')
|
39
|
+
|
35
40
|
config['matrix']['allow_failures'].any? do |allow|
|
36
41
|
allow.all? { |key, value| config[key] == value }
|
37
42
|
end
|