travis 1.11.1 → 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 +9 -3
  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 -27
  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,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client'
2
4
  require 'travis/version'
3
5
 
4
6
  require 'faraday'
5
- require 'faraday_middleware'
6
7
  require 'travis/tools/system'
7
8
  require 'travis/tools/assets'
9
+ require 'faraday/rack'
8
10
 
9
11
  begin
10
- require 'typhoeus/adapters/faraday' unless Travis::Tools::System.windows?
12
+ require 'faraday/typhoeus' unless Travis::Tools::System.windows?
11
13
  rescue LoadError
12
14
  end
13
15
 
@@ -16,14 +18,14 @@ require 'json'
16
18
  module Travis
17
19
  module Client
18
20
  class Session
19
- PRIMITIVE = [nil, false, true]
20
- SSL_OPTIONS = { :ca_file => Tools::Assets['cacert.pem'] }
21
+ PRIMITIVE = [nil, false, true].freeze
22
+ SSL_OPTIONS = { ca_file: Tools::Assets['cacert.pem'] }
21
23
 
22
24
  include Methods
23
25
  attr_reader :connection, :headers, :access_token, :instruments, :faraday_adapter, :agent_info, :ssl
24
26
  attr_accessor :debug_http
25
27
 
26
- def initialize(options = Travis::Client::ORG_URI)
28
+ def initialize(options = Travis::Client::COM_URI)
27
29
  @headers = {}
28
30
  @cache = {}
29
31
  @instruments = []
@@ -32,10 +34,11 @@ module Travis
32
34
  @faraday_adapter = defined?(Typhoeus) ? :typhoeus : :net_http
33
35
  @ssl = SSL_OPTIONS
34
36
 
35
- options = { :uri => options } unless options.respond_to? :each_pair
37
+ options = { uri: options } unless options.respond_to? :each_pair
36
38
  options.each_pair { |key, value| public_send("#{key}=", value) }
37
39
 
38
- raise ArgumentError, "neither :uri nor :connection specified" unless connection
40
+ raise ArgumentError, 'neither :uri nor :connection specified' unless connection
41
+
39
42
  headers['Accept'] = 'application/vnd.travis-ci.2+json'
40
43
  set_user_agent
41
44
  check_ssl
@@ -57,7 +60,7 @@ module Travis
57
60
 
58
61
  def uri=(uri)
59
62
  clear_cache!
60
- self.connection = Faraday.new(:url => uri, :ssl => ssl) do |faraday|
63
+ self.connection = Faraday.new(url: uri, ssl:) do |faraday|
61
64
  faraday.request :url_encoded
62
65
  faraday.request :retry
63
66
  faraday.response :logger if debug_http
@@ -93,21 +96,27 @@ module Travis
93
96
  end
94
97
 
95
98
  def find_one(entity, id = nil)
96
- raise Travis::Client::Error, "cannot fetch #{entity}" unless entity.respond_to?(:many) and entity.many
99
+ raise Travis::Client::Error, "cannot fetch #{entity}" unless entity.respond_to?(:many) && entity.many
97
100
  return create_entity(entity, entity.id_field => id) if entity.id? id
101
+
98
102
  cached(entity, :by, id) { fetch_one(entity, id) }
99
103
  end
100
104
 
101
105
  def find_many(entity, args = {})
102
- raise Travis::Client::Error, "cannot fetch #{entity}" unless entity.respond_to?(:many) and entity.many
106
+ raise Travis::Client::Error, "cannot fetch #{entity}" unless entity.respond_to?(:many) && entity.many
107
+
103
108
  cached(entity, :many, args) { fetch_many(entity, args) }
104
109
  end
105
110
 
106
111
  def find_one_or_many(entity, args = nil)
107
- raise Travis::Client::Error, "cannot fetch #{entity}" unless entity.respond_to?(:many) and entity.many
112
+ raise Travis::Client::Error, "cannot fetch #{entity}" unless entity.respond_to?(:many) && entity.many
113
+
108
114
  cached(entity, :one_or_many, args) do
109
- path = "/#{entity.many}"
110
- path, args = "#{path}/#{args}", {} unless args.is_a? Hash
115
+ path = "/#{entity.many}"
116
+ unless args.is_a? Hash
117
+ path = "#{path}/#{args}"
118
+ args = {}
119
+ end
111
120
  result = get(path, args)
112
121
  one = result[entity.one]
113
122
 
@@ -157,8 +166,9 @@ module Travis
157
166
  def preload(list)
158
167
  list.group_by(&:class).each do |type, instances|
159
168
  next unless type.preloadable?
169
+
160
170
  ids = instances.map { |e| e.id unless e.complete? }.compact
161
- find_many(type, :ids => ids) if ids.any?
171
+ find_many(type, ids:) if ids.any?
162
172
  end
163
173
  list
164
174
  end
@@ -204,32 +214,40 @@ module Travis
204
214
  end
205
215
 
206
216
  def raw(verb, url, *args)
207
- url = url.sub(/^\//, '')
217
+ url = url.sub(%r{^/}, '')
208
218
  result = instrumented(verb.to_s.upcase, url, *args) do
209
- if url !~ /^https?:/ or url.start_with? api_endpoint
219
+ if url !~ (/^https?:/) || url.start_with?(api_endpoint)
210
220
  connection.public_send(verb, url, *args)
211
221
  else
212
- Faraday.public_send(verb, url, *args) { |r| r.headers.delete("Authorization") }
222
+ Faraday.public_send(verb, url, *args) { |r| r.headers.delete('Authorization') }
213
223
  end
214
224
  end
215
225
 
216
226
  case result.status
217
227
  when 0 then raise Travis::Client::SSLError, 'SSL error: could not verify peer'
218
- when 200..299 then JSON.parse(result.body) rescue result.body
228
+ when 200..299 then begin
229
+ JSON.parse(result.body)
230
+ rescue StandardError
231
+ result.body
232
+ end
219
233
  when 301, 303 then raw(:get, result.headers['Location'])
220
234
  when 302, 307, 308 then raw(verb, result.headers['Location'])
221
- when 401 then raise Travis::Client::NotLoggedIn, 'not logged in'
222
- when 403 then
223
- body = JSON.parse(result.body) rescue {}
224
- if body["error_type"] == "migrated_repository"
225
- raise Travis::Client::RepositoryMigrated, body["error_message"]
226
- else
227
- raise Travis::Client::NotLoggedIn, 'invalid access token'
235
+ when 401 then raise Travis::Client::NotLoggedIn, 'not logged in'
236
+ when 403
237
+ body = begin
238
+ JSON.parse(result.body)
239
+ rescue StandardError
240
+ {}
228
241
  end
242
+ raise Travis::Client::RepositoryMigrated, body['error_message'] if body['error_type'] == 'migrated_repository'
243
+
244
+ raise Travis::Client::NotLoggedIn, 'invalid access token'
245
+
229
246
  when 404 then raise Travis::Client::NotFound, result.body
230
247
  when 422 then raise Travis::Client::ValidationFailed, result.body
231
- when 400..499 then raise Travis::Client::Error, "%s: %p" % [result.status, result.body]
232
- when 500..599 then raise Travis::Client::Error, "server error (%s: %p)" % [result.status, result.body]
248
+ when 400..499 then raise Travis::Client::Error, format('%s: %p', result.status, result.body)
249
+ when 500..599 then raise Travis::Client::Error,
250
+ format('server error (%s: %p)', result.status, result.body)
233
251
  else raise Travis::Client::Error, "unhandled status code #{result.status}"
234
252
  end
235
253
  end
@@ -264,83 +282,95 @@ module Travis
264
282
 
265
283
  private
266
284
 
267
- def set_user_agent
268
- adapter = Array === faraday_adapter ? faraday_adapter.first : faraday_adapter
269
- adapter = adapter.to_s.capitalize.gsub(/_http_(.)/) { "::HTTP::#{$1.upcase}" }.gsub(/_http/, '::HTTP')
270
- headers['User-Agent'] = "Travis/#{Travis::VERSION} (#{Travis::Tools::System.description(agent_info)}) Faraday/#{Faraday::VERSION} #{adapter}/#{adapter_version(adapter)}"
271
- end
285
+ def set_user_agent
286
+ adapter = faraday_adapter.is_a?(Array) ? faraday_adapter.first : faraday_adapter
287
+ adapter = adapter.to_s.capitalize.gsub(/_http_(.)/) do
288
+ "::HTTP::#{::Regexp.last_match(1).upcase}"
289
+ end.gsub(/_http/, '::HTTP')
290
+ headers['User-Agent'] =
291
+ "Travis/#{Travis::VERSION} (#{Travis::Tools::System.description(agent_info)}) Faraday/#{Faraday::VERSION} #{adapter}/#{adapter_version(adapter)}"
292
+ end
272
293
 
273
- def adapter_version(adapter)
274
- version = Object.const_get(adapter).const_get("VERSION")
275
- [*version].join('.')
276
- rescue Exception
277
- "unknown"
278
- end
294
+ def adapter_version(adapter)
295
+ version = Object.const_get(adapter).const_get('VERSION')
296
+ [*version].join('.')
297
+ rescue Exception
298
+ 'unknown'
299
+ end
279
300
 
280
- def instrumented(name, *args)
281
- name = [name, *args.map(&:inspect)].join(" ") if args.any?
282
- result = nil
283
- chain = instruments + [proc { |n,l| result = yield }]
284
- lift = proc { chain.shift.call(name, lift) }
285
- lift.call
286
- result
287
- end
301
+ def instrumented(name, *args)
302
+ name = [name, *args.map(&:inspect)].join(' ') if args.any?
303
+ result = nil
304
+ chain = instruments + [proc { |_n, _l| result = yield }]
305
+ lift = proc { chain.shift.call(name, lift) }
306
+ lift.call
307
+ result
308
+ end
288
309
 
289
- def create_entity(type, data)
290
- return data if primitive?(data)
291
- data = { type.id_field => data } if type.id? data
292
- id = type.cast_id(data.fetch(type.id_field)) unless type.weak?
293
- entity = id ? cached(type, :id, id) { type.new(self, id) } : type.new(self, nil)
294
- entity.update_attributes(data)
295
- entity
296
- end
310
+ def create_entity(type, data)
311
+ return data if primitive?(data)
297
312
 
298
- def primitive?(data)
299
- PRIMITIVE.include? data
300
- end
313
+ data = { type.id_field => data } if type.id? data
314
+ id = type.cast_id(data.fetch(type.id_field)) unless type.weak?
315
+ entity = id ? cached(type, :id, id) { type.new(self, id) } : type.new(self, nil)
316
+ entity.update_attributes(data)
317
+ entity
318
+ end
301
319
 
302
- def error_message(e)
303
- message = e.response[:body].to_str rescue e.message
304
- JSON.parse(message).fetch('error').fetch('message') rescue message
305
- end
320
+ def primitive?(data)
321
+ PRIMITIVE.include? data
322
+ end
306
323
 
307
- def reset_entities
308
- subcaches do |subcache|
309
- subcache[:id].each_value { |e| e.attributes.clear } if subcache.include? :id
310
- end
324
+ def error_message(e)
325
+ message = begin
326
+ e.response[:body].to_str
327
+ rescue StandardError
328
+ e.message
311
329
  end
312
-
313
- def clear_find_cache
314
- subcaches do |subcache|
315
- subcache.delete_if { |k, v| k != :id }
316
- end
330
+ begin
331
+ JSON.parse(message).fetch('error').fetch('message')
332
+ rescue StandardError
333
+ message
317
334
  end
335
+ end
318
336
 
319
- def subcaches
320
- @cache.each_value do |subcache|
321
- yield subcache if subcache.is_a? Hash
322
- end
337
+ def reset_entities
338
+ subcaches do |subcache|
339
+ subcache[:id].each_value { |e| e.attributes.clear } if subcache.include? :id
323
340
  end
341
+ end
324
342
 
325
- def fetch_one(entity, id = nil)
326
- get("/#{entity.base_path}/#{id}")[entity.one]
343
+ def clear_find_cache
344
+ subcaches do |subcache|
345
+ subcache.delete_if { |k, _v| k != :id }
327
346
  end
347
+ end
328
348
 
329
- def fetch_many(entity, params = {})
330
- get("/#{entity.base_path}/", params)[entity.many]
349
+ def subcaches
350
+ @cache.each_value do |subcache|
351
+ yield subcache if subcache.is_a? Hash
331
352
  end
353
+ end
332
354
 
333
- def cached(*keys)
334
- last = keys.pop
335
- cache = keys.inject(@cache) { |store, key| store[key] ||= {} }
336
- cache[last] ||= yield
337
- end
355
+ def fetch_one(entity, id = nil)
356
+ get("/#{entity.base_path}/#{id}")[entity.one]
357
+ end
338
358
 
339
- def check_ssl
340
- raw(:head, '/') if ssl == SSL_OPTIONS
341
- rescue Exception => error
342
- self.ssl = {} if error.class == Travis::Client::SSLError
343
- end
359
+ def fetch_many(entity, params = {})
360
+ get("/#{entity.base_path}/", params)[entity.many]
361
+ end
362
+
363
+ def cached(*keys)
364
+ last = keys.pop
365
+ cache = keys.inject(@cache) { |store, key| store[key] ||= {} }
366
+ cache[last] ||= yield
367
+ end
368
+
369
+ def check_ssl
370
+ raw(:head, '/') if ssl == SSL_OPTIONS
371
+ rescue Exception => e
372
+ self.ssl = {} if e.instance_of?(Travis::Client::SSLError)
373
+ end
344
374
  end
345
375
  end
346
376
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client/weak_entity'
2
4
  require 'json'
3
5
 
@@ -5,14 +7,17 @@ module Travis
5
7
  module Client
6
8
  class Settings < WeakEntity
7
9
  attr_accessor :repository
10
+
8
11
  # @!parse attr_reader :builds_only_with_travis_yml, :build_pushes, :build_pull_requests, :maximum_number_of_builds, :auto_cancel_pushes, :auto_cancel_pull_requests
9
- attributes :builds_only_with_travis_yml, :build_pushes, :build_pull_requests, :maximum_number_of_builds, :auto_cancel_pushes, :auto_cancel_pull_requests
12
+ attributes :builds_only_with_travis_yml, :build_pushes, :build_pull_requests, :maximum_number_of_builds,
13
+ :auto_cancel_pushes, :auto_cancel_pull_requests
10
14
  one :settings
11
15
  many :settings
12
16
 
13
17
  def save
14
- raise "repository unknown" unless repository
15
- result = session.patch("/repos/#{repository.id}/settings", JSON.dump("settings" => attributes))
18
+ raise 'repository unknown' unless repository
19
+
20
+ result = session.patch("/repos/#{repository.id}/settings", JSON.dump('settings' => attributes))
16
21
  attributes.replace(result['settings'].attributes)
17
22
  self
18
23
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module Travis
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module Travis
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client'
2
4
 
3
5
  module Travis
4
6
  module Client
5
7
  module States
6
- STATES = %w[created queued received started passed failed errored canceled ready]
8
+ STATES = %w[created queued received started passed failed errored canceled ready].freeze
7
9
 
8
10
  def ready?
9
11
  state == 'ready'
@@ -11,7 +13,7 @@ module Travis
11
13
 
12
14
  def pending?
13
15
  check_state
14
- %w[created started queued received ].include? state
16
+ %w[created started queued received].include? state
15
17
  end
16
18
 
17
19
  def started?
@@ -30,7 +32,7 @@ module Travis
30
32
  end
31
33
 
32
34
  def finished?
33
- not pending?
35
+ !pending?
34
36
  end
35
37
 
36
38
  def passed?
@@ -90,9 +92,9 @@ module Travis
90
92
 
91
93
  private
92
94
 
93
- def check_state
94
- raise Error, "unknown state %p for %p" % [state, self] unless STATES.include? state
95
- end
95
+ def check_state
96
+ raise Error, format('unknown state %p for %p', state, self) unless STATES.include? state
97
+ end
96
98
  end
97
99
  end
98
100
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client'
2
4
 
3
5
  module Travis
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client'
2
4
 
3
5
  module Travis
@@ -10,7 +12,7 @@ module Travis
10
12
  end
11
13
 
12
14
  def self.id_field
13
- raise "weak entities do not have id fields"
15
+ raise 'weak entities do not have id fields'
14
16
  end
15
17
 
16
18
  def self.id?(object)
@@ -19,8 +21,9 @@ module Travis
19
21
 
20
22
  def self.cast_id(object)
21
23
  return object if id? object
22
- raise "weak entities do not have id fields"
24
+
25
+ raise 'weak entities do not have id fields'
23
26
  end
24
27
  end
25
28
  end
26
- end
29
+ end
data/lib/travis/client.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client/error'
2
4
  require 'travis/client/states'
3
5
  require 'travis/client/restartable'
@@ -26,11 +28,12 @@ require 'travis/client/lint_result'
26
28
 
27
29
  module Travis
28
30
  module Client
31
+
29
32
  ORG_URI = 'https://api.travis-ci.org/'
30
33
  COM_URI = 'https://api.travis-ci.com/'
31
34
 
32
35
  def self.new(options = {})
33
- options[:uri] ||= ORG_URI if options.is_a? Hash and not options['uri']
36
+ options[:uri] ||= COM_URI if options.is_a?(Hash) && !(options['uri'])
34
37
  Session.new(options)
35
38
  end
36
39
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/pro'
2
4
  require 'travis/client/auto_login'
3
5
  Travis::Client::AutoLogin.new(Travis::Pro).authenticate
data/lib/travis/pro.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/client'
2
4
 
3
5
  module Travis
@@ -1,13 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pathname'
2
4
  module Travis
3
5
  module Tools
4
6
  module Assets
5
- BASE = File.expand_path('../../../../assets', __FILE__)
6
- extend self
7
+ BASE = File.expand_path('../../../assets', __dir__)
8
+
9
+ module_function
7
10
 
8
11
  def asset_path(file)
9
12
  Pathname.glob(File.expand_path(file, BASE)).tap do |x|
10
- raise Travis::Client::AssetNotFound.new(file) if x.empty?
13
+ raise Travis::Client::AssetNotFound, file if x.empty?
11
14
  end.first.to_s
12
15
  end
13
16
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'travis/tools/assets'
2
4
  require 'travis/cli'
3
5
  require 'fileutils'
@@ -8,7 +10,8 @@ module Travis
8
10
  module Completion
9
11
  RCS = ['.zshrc', '.bashrc'].map { |f| File.expand_path(f, ENV['HOME']) }
10
12
  include FileUtils
11
- extend self
13
+
14
+ module_function
12
15
 
13
16
  def config_path
14
17
  ENV.fetch('TRAVIS_CONFIG_PATH') { File.expand_path('.travis', ENV['HOME']) }
@@ -20,12 +23,13 @@ module Travis
20
23
 
21
24
  def install_completion
22
25
  update_completion
23
- source = "source " << cmp_file
26
+ source = 'source ' << cmp_file
24
27
 
25
28
  RCS.each do |file|
26
- next unless File.exist? file and File.writable? file
29
+ next unless File.exist?(file) && File.writable?(file)
27
30
  next if File.read(file).include? source
28
- File.open(file, "a") { |f| f.puts("", "# added by travis gem", "[ ! -s #{cmp_file} ] || #{source}") }
31
+
32
+ File.open(file, 'a') { |f| f.puts('', '# added by travis gem', "[ ! -s #{cmp_file} ] || #{source}") }
29
33
  end
30
34
  end
31
35
 
@@ -35,9 +39,9 @@ module Travis
35
39
  end
36
40
 
37
41
  def completion_installed?
38
- source = "source " << config_path
42
+ source = 'source ' << config_path
39
43
  RCS.each do |file|
40
- next unless File.exist? file and File.writable? file
44
+ next unless File.exist?(file) && File.writable?(file)
41
45
  return false unless File.read(file).include? source
42
46
  end
43
47
  true
@@ -1,30 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'time'
2
4
 
3
5
  module Travis
4
6
  module Tools
5
7
  class Formatter
6
8
  DAY = 24 * 60 * 60
7
- TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
8
- CONFIG_KEYS = ['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala', 'compiler', 'os']
9
+ TIME_FORMAT = '%Y-%m-%d %H:%M:%S'
10
+ CONFIG_KEYS = %w[rvm gemfile env jdk otp_release php node_js perl python scala
11
+ compiler os].freeze
9
12
 
10
13
  def duration(seconds, suffix = nil)
11
- return "none" if seconds.nil?
14
+ return 'none' if seconds.nil?
15
+
12
16
  seconds = (Time.now - seconds).to_i if seconds.is_a? Time
13
17
  output = []
14
18
  minutes, seconds = seconds.divmod(60)
15
19
  hours, minutes = minutes.divmod(60)
16
- output << "#{hours } hrs" if hours > 0
17
- output << "#{minutes} min" if minutes > 0
18
- output << "#{seconds} sec" if seconds > 0 or output.empty?
20
+ output << "#{hours} hrs" if hours.positive?
21
+ output << "#{minutes} min" if minutes.positive?
22
+ output << "#{seconds} sec" if seconds.positive? || output.empty?
19
23
  output << suffix if suffix
20
- output.join(" ")
24
+ output.join(' ')
21
25
  end
22
26
 
23
- def file_size(input, human = true)
27
+ def file_size(input, human: true)
24
28
  return "#{input} B" unless human
25
- format = "B"
29
+
30
+ format = 'B'
26
31
  iec = %w[KiB MiB GiB TiB PiB EiB ZiB YiB]
27
- while human and input > 512 and iec.any?
32
+ while human && (input > 512) && iec.any?
28
33
  input /= 1024.0
29
34
  format = iec.shift
30
35
  end
@@ -33,8 +38,9 @@ module Travis
33
38
  end
34
39
 
35
40
  def time(time)
36
- return "not yet" if time.nil? # or time > Time.now
37
- #return duration(time, "ago") if Time.now - time < DAY
41
+ return 'not yet' if time.nil? # or time > Time.now
42
+
43
+ # return duration(time, "ago") if Time.now - time < DAY
38
44
  time.localtime.strftime(TIME_FORMAT)
39
45
  end
40
46
 
@@ -43,8 +49,8 @@ module Travis
43
49
  config.each_pair do |key, value|
44
50
  output << "#{key}: #{value}" if CONFIG_KEYS.include? key
45
51
  end
46
- output.join(", ")
52
+ output.join(', ')
47
53
  end
48
54
  end
49
55
  end
50
- end
56
+ end