travis 1.11.1 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -3
- 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 -27
- 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
|