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