travis 1.11.0 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -4
  3. data/Rakefile +22 -20
  4. data/bin/travis +5 -3
  5. data/examples/org_overview.rb +2 -0
  6. data/examples/pro_auth.rb +3 -1
  7. data/examples/stream.rb +5 -3
  8. data/lib/travis/auto_login.rb +2 -0
  9. data/lib/travis/cli/accounts.rb +12 -9
  10. data/lib/travis/cli/api_command.rb +85 -81
  11. data/lib/travis/cli/branches.rb +8 -6
  12. data/lib/travis/cli/cache.rb +48 -44
  13. data/lib/travis/cli/cancel.rb +4 -2
  14. data/lib/travis/cli/command.rb +170 -142
  15. data/lib/travis/cli/console.rb +5 -5
  16. data/lib/travis/cli/disable.rb +4 -2
  17. data/lib/travis/cli/enable.rb +14 -12
  18. data/lib/travis/cli/encrypt.rb +57 -57
  19. data/lib/travis/cli/encrypt_file.rb +29 -18
  20. data/lib/travis/cli/endpoint.rb +9 -7
  21. data/lib/travis/cli/env.rb +13 -8
  22. data/lib/travis/cli/help.rb +10 -8
  23. data/lib/travis/cli/history.rb +19 -15
  24. data/lib/travis/cli/init.rb +27 -24
  25. data/lib/travis/cli/lint.rb +10 -8
  26. data/lib/travis/cli/login.rb +17 -11
  27. data/lib/travis/cli/logout.rb +4 -2
  28. data/lib/travis/cli/logs.rb +28 -19
  29. data/lib/travis/cli/monitor.rb +11 -8
  30. data/lib/travis/cli/open.rb +17 -14
  31. data/lib/travis/cli/parser.rb +2 -0
  32. data/lib/travis/cli/pubkey.rb +13 -11
  33. data/lib/travis/cli/raw.rb +4 -3
  34. data/lib/travis/cli/repo_command.rb +123 -112
  35. data/lib/travis/cli/report.rb +40 -33
  36. data/lib/travis/cli/repos.rb +14 -9
  37. data/lib/travis/cli/requests.rb +13 -12
  38. data/lib/travis/cli/restart.rb +4 -2
  39. data/lib/travis/cli/settings.rb +41 -35
  40. data/lib/travis/cli/setup/anynines.rb +7 -6
  41. data/lib/travis/cli/setup/appfog.rb +6 -4
  42. data/lib/travis/cli/setup/artifacts.rb +7 -5
  43. data/lib/travis/cli/setup/biicode.rb +6 -4
  44. data/lib/travis/cli/setup/cloud_66.rb +6 -4
  45. data/lib/travis/cli/setup/cloud_control.rb +8 -6
  46. data/lib/travis/cli/setup/cloud_files.rb +7 -5
  47. data/lib/travis/cli/setup/cloud_foundry.rb +9 -7
  48. data/lib/travis/cli/setup/code_deploy.rb +33 -29
  49. data/lib/travis/cli/setup/deis.rb +8 -6
  50. data/lib/travis/cli/setup/divshot.rb +20 -18
  51. data/lib/travis/cli/setup/elastic_beanstalk.rb +10 -8
  52. data/lib/travis/cli/setup/engine_yard.rb +9 -7
  53. data/lib/travis/cli/setup/gcs.rb +9 -7
  54. data/lib/travis/cli/setup/hackage.rb +6 -4
  55. data/lib/travis/cli/setup/heroku.rb +10 -4
  56. data/lib/travis/cli/setup/modulus.rb +5 -3
  57. data/lib/travis/cli/setup/ninefold.rb +7 -5
  58. data/lib/travis/cli/setup/nodejitsu.rb +6 -4
  59. data/lib/travis/cli/setup/npm.rb +6 -4
  60. data/lib/travis/cli/setup/open_shift.rb +8 -6
  61. data/lib/travis/cli/setup/opsworks.rb +24 -22
  62. data/lib/travis/cli/setup/pypi.rb +7 -5
  63. data/lib/travis/cli/setup/releases.rb +6 -6
  64. data/lib/travis/cli/setup/ruby_gems.rb +7 -5
  65. data/lib/travis/cli/setup/s3.rb +12 -8
  66. data/lib/travis/cli/setup/sauce_connect.rb +7 -5
  67. data/lib/travis/cli/setup/service.rb +36 -25
  68. data/lib/travis/cli/setup.rb +7 -3
  69. data/lib/travis/cli/show.rb +10 -8
  70. data/lib/travis/cli/sshkey.rb +31 -28
  71. data/lib/travis/cli/status.rb +5 -3
  72. data/lib/travis/cli/sync.rb +9 -7
  73. data/lib/travis/cli/token.rb +4 -2
  74. data/lib/travis/cli/version.rb +4 -3
  75. data/lib/travis/cli/whatsup.rb +10 -8
  76. data/lib/travis/cli/whoami.rb +2 -2
  77. data/lib/travis/cli.rb +39 -36
  78. data/lib/travis/client/account.rb +8 -6
  79. data/lib/travis/client/artifact.rb +16 -12
  80. data/lib/travis/client/auto_login.rb +7 -4
  81. data/lib/travis/client/broadcast.rb +2 -0
  82. data/lib/travis/client/build.rb +7 -3
  83. data/lib/travis/client/cache.rb +4 -2
  84. data/lib/travis/client/commit.rb +5 -2
  85. data/lib/travis/client/entity.rb +50 -46
  86. data/lib/travis/client/env_var.rb +13 -8
  87. data/lib/travis/client/error.rb +5 -3
  88. data/lib/travis/client/has_uuid.rb +3 -1
  89. data/lib/travis/client/job.rb +8 -3
  90. data/lib/travis/client/lint_result.rb +2 -0
  91. data/lib/travis/client/listener.rb +70 -55
  92. data/lib/travis/client/methods.rb +10 -5
  93. data/lib/travis/client/namespace.rb +20 -16
  94. data/lib/travis/client/not_loadable.rb +3 -1
  95. data/lib/travis/client/repository.rb +34 -22
  96. data/lib/travis/client/request.rb +5 -2
  97. data/lib/travis/client/restartable.rb +2 -0
  98. data/lib/travis/client/session.rb +118 -88
  99. data/lib/travis/client/settings.rb +8 -3
  100. data/lib/travis/client/singleton_setting.rb +2 -0
  101. data/lib/travis/client/ssh_key.rb +2 -0
  102. data/lib/travis/client/states.rb +8 -6
  103. data/lib/travis/client/user.rb +2 -0
  104. data/lib/travis/client/weak_entity.rb +6 -3
  105. data/lib/travis/client.rb +4 -1
  106. data/lib/travis/pro/auto_login.rb +2 -0
  107. data/lib/travis/pro.rb +2 -0
  108. data/lib/travis/tools/assets.rb +6 -3
  109. data/lib/travis/tools/completion.rb +10 -6
  110. data/lib/travis/tools/formatter.rb +20 -14
  111. data/lib/travis/tools/github.rb +59 -49
  112. data/lib/travis/tools/notification.rb +18 -13
  113. data/lib/travis/tools/safe_string.rb +4 -1
  114. data/lib/travis/tools/ssl_key.rb +5 -2
  115. data/lib/travis/tools/system.rb +11 -6
  116. data/lib/travis/version.rb +3 -1
  117. data/lib/travis.rb +3 -1
  118. data/spec/cli/api_command_spec.rb +11 -8
  119. data/spec/cli/cancel_spec.rb +2 -4
  120. data/spec/cli/encrypt_file_spec.rb +9 -7
  121. data/spec/cli/encrypt_spec.rb +19 -17
  122. data/spec/cli/endpoint_spec.rb +12 -10
  123. data/spec/cli/help_spec.rb +14 -12
  124. data/spec/cli/history_spec.rb +2 -0
  125. data/spec/cli/init_spec.rb +35 -33
  126. data/spec/cli/logs_spec.rb +2 -0
  127. data/spec/cli/open_spec.rb +6 -4
  128. data/spec/cli/repo_command_spec.rb +8 -4
  129. data/spec/cli/restart_spec.rb +2 -4
  130. data/spec/cli/setup/service_spec.rb +17 -18
  131. data/spec/cli/setup_spec.rb +2 -4
  132. data/spec/cli/show_spec.rb +4 -2
  133. data/spec/cli/status_spec.rb +7 -5
  134. data/spec/cli/token_spec.rb +7 -5
  135. data/spec/cli/version_spec.rb +2 -0
  136. data/spec/cli/whoami_spec.rb +9 -7
  137. data/spec/client/account_spec.rb +28 -20
  138. data/spec/client/auto_login_spec.rb +12 -9
  139. data/spec/client/broadcast_spec.rb +5 -3
  140. data/spec/client/build_spec.rb +28 -24
  141. data/spec/client/commit_spec.rb +17 -14
  142. data/spec/client/job_spec.rb +27 -23
  143. data/spec/client/methods_spec.rb +8 -4
  144. data/spec/client/namespace_spec.rb +8 -4
  145. data/spec/client/repository_spec.rb +33 -30
  146. data/spec/client/session_spec.rb +71 -67
  147. data/spec/client/user_spec.rb +13 -10
  148. data/spec/client_spec.rb +6 -4
  149. data/spec/pro_spec.rb +5 -3
  150. data/spec/spec_helper.rb +3 -1
  151. data/spec/support/fake_api.rb +662 -662
  152. data/spec/support/fake_github.rb +6 -3
  153. data/spec/support/helpers.rb +13 -8
  154. data/spec/travis_spec.rb +5 -3
  155. data/travis.gemspec +400 -399
  156. metadata +30 -50
@@ -1,12 +1,13 @@
1
- # encoding: utf-8
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 = "application/json; chunked=true; version=2, application/json; version=2"
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 = { :reason => reason } unless reason.is_a? Hash
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 => error
22
- raise unless error.message == '409'
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, "Accept" => TEXT)
43
- body = String === log ? log : log['log']['body']
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? or stream
51
- return yield(current_body) unless stream and job.pending?
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 |event|
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, "Accept" => CHUNKED)['log']
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) { true }
16
- @raise = options.fetch(:raise) { true }
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, "no suitable github token found" } if @raise
31
+ g.after_tokens = proc { raise NoTokenError, 'no suitable github token found' } if @raise
29
32
  end
30
33
  end
31
34
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client'
2
4
 
3
5
  module Travis
@@ -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 States, Restartable
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, :config, :state, :started_at, :finished_at, :duration, :job_ids
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
- not pull_request?
34
+ !pull_request?
31
35
  end
32
36
 
33
37
  def branch_info
@@ -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(:branch => branch, :match => slug)
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
@@ -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, :committer_email, :compare_url
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 + " " + subject.inspect
27
+ "#{short_sha} #{subject.inspect}"
25
28
  end
26
29
  end
27
30
  end
@@ -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
- fail "can't call an attribute id" if name == "id"
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 and curry.name and curry.to_s.size < klass.to_s.size
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
- def relation(name)
186
- name = name.to_s
187
- entity = Entity.subclass_for(name)
188
-
189
- if entity.many == name
190
- Array(send("#{entity.one}_ids")).map do |id|
191
- session.find_one(entity, id)
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
- def inspect_info
200
- id
201
- end
203
+ def inspect_info
204
+ id
205
+ end
202
206
 
203
- def set_attribute(name, value)
204
- attributes[name.to_s] = value
205
- end
207
+ def set_attribute(name, value)
208
+ attributes[name.to_s] = value
209
+ end
206
210
 
207
- def load_attribute(name)
208
- session.reload(self) if missing? name
209
- attributes[name.to_s]
210
- end
211
+ def load_attribute(name)
212
+ session.reload(self) if missing? name
213
+ attributes[name.to_s]
214
+ end
211
215
 
212
- # shamelessly stolen from sinatra
213
- def time(value)
214
- if value.respond_to? :to_time
215
- value.to_time
216
- elsif value.is_a? Time
217
- value
218
- elsif value.respond_to? :new_offset
219
- d = value.new_offset 0
220
- t = Time.utc d.year, d.mon, d.mday, d.hour, d.min, d.sec + d.sec_fraction
221
- t.getlocal
222
- elsif value.respond_to? :mday
223
- Time.local(value.year, value.mon, value.mday)
224
- elsif value.is_a? Numeric
225
- Time.at value
226
- elsif value.nil? or value.empty?
227
- nil
228
- else
229
- Time.parse value.to_s
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(:env_var => options.merge(:name => name, :value => value))
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(:value => value))
47
- entries[1..-1].each { |e| e.delete }
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 === object ? object.id : object.repository_id
69
- raise "repository unknown" unless repository_id
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 = { :value => options } unless options.is_a? Hash
86
- result = session.patch(EnvVar.path(self), JSON.dump(:env_var => options))
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 : "[secure]"}"
103
+ "#{name}=#{value ? value.inspect : '[secure]'}"
99
104
  end
100
105
  end
101
106
  end
@@ -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[init/(?<lang>[^\.]+)\.yml$])
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.load(message)
47
+ response = JSON.parse(message)
46
48
  message = response['message'].to_s
47
- if @errors = response['errors'] and @errors.any?
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
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Travis
2
4
  module Client
3
5
  module HasUuid
4
6
  def id?(object)
5
- object =~ /\A(?:\w+-){4}\w+\Z/ if object.is_a? String
7
+ object =~ /\A(?:\w+-){4}\w+\Z/ if object.is_a? String
6
8
  end
7
9
 
8
10
  def cast_id(object)
@@ -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 States, Restartable
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, :queue, :allow_failure, :tags
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? 'matrix' and config['matrix'].include? 'allow_failures'
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Travis
2
4
  module Client
3
5
  class LintResult