codecov 0.2.4 → 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/codecov.rb +52 -23
  3. data/test/test_codecov.rb +85 -5
  4. metadata +8 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc1716ae9ed1cf09a8e880633b225b27e9d4df5706dc7fb12137bcb4297b3a56
4
- data.tar.gz: deead52d64bb597c8c96de120f0b45156d564a43b7429a48b30f45a66370cb49
3
+ metadata.gz: cdd8c92464da131becf5bae150b12f4ae3513d84c7f77ba059ee771ee662eca4
4
+ data.tar.gz: 592ed8f011c9e618aa2b71cf2c0ba7a9fb7a7ff1aa9ad80db72743f7f658cf24
5
5
  SHA512:
6
- metadata.gz: 26b3a8a151fabb896829b3cc6c0baf60582ab0bb351f2a2ce51156a5302d0b4cbfcd551172d002d114d369e677e14998dd27f3343d92ef16723332162a5eecf0
7
- data.tar.gz: e96ce1b8daa6883a6671b544f5cadff5446ea2572c982b2f913e25f104205fefa353e41ec08a49d0e1e9337b736e23f400358b56724c686b614dd07abf7f6f7e
6
+ metadata.gz: ec4048e6ecb6c5780bfa1e4320a1edc177a5b96b6b2a3a7ba3a41416e5e1b40ea69e64d9cbeb58b920a566e9d3379244a4a21496500210adc9b51116325e5f0e
7
+ data.tar.gz: 4564c29b679ea650270560c719a1a178c8ab2d65fa9157e7892f06d02855b01ef5dcfe6be35e7cd47a836bec72abb74c1dc36002d9c030344549f987df9d930f
@@ -4,12 +4,11 @@ require 'uri'
4
4
  require 'json'
5
5
  require 'net/http'
6
6
  require 'simplecov'
7
- require 'colorize'
8
7
  require 'zlib'
9
8
 
10
- require 'version'
11
-
12
9
  class SimpleCov::Formatter::Codecov
10
+ VERSION = '0.2.9'
11
+
13
12
  ### CIs
14
13
  RECOGNIZED_CIS = [
15
14
  APPVEYOR = 'Appveyor CI',
@@ -18,6 +17,7 @@ class SimpleCov::Formatter::Codecov
18
17
  BITRISE = 'Bitrise CI',
19
18
  BUILDKITE = 'Buildkite CI',
20
19
  CIRCLE = 'Circle CI',
20
+ CODEBUILD = 'Codebuild CI',
21
21
  CODESHIP = 'Codeship CI',
22
22
  DRONEIO = 'Drone CI',
23
23
  GITHUB = 'GitHub Actions',
@@ -41,7 +41,7 @@ class SimpleCov::Formatter::Codecov
41
41
  '| | / _ \ / _\`|/ _ \/ __/ _ \ \ / /',
42
42
  '| |___| (_) | (_| | __/ (_| (_) \ V /',
43
43
  ' \_____\___/ \__,_|\___|\___\___/ \_/',
44
- " Ruby-#{Version::LATEST}",
44
+ " Ruby-#{VERSION}",
45
45
  ''
46
46
  ].join("\n")
47
47
  end
@@ -59,6 +59,8 @@ class SimpleCov::Formatter::Codecov
59
59
  BUILDKITE
60
60
  elsif (ENV['CI'] == 'true') && (ENV['CIRCLECI'] == 'true')
61
61
  CIRCLE
62
+ elsif ENV['CODEBUILD_CI'] == 'true'
63
+ CODEBUILD
62
64
  elsif (ENV['CI'] == 'true') && (ENV['CI_NAME'] == 'codeship')
63
65
  CODESHIP
64
66
  elsif ((ENV['CI'] == 'true') || (ENV['CI'] == 'drone')) && (ENV['DRONE'] == 'true')
@@ -86,7 +88,7 @@ class SimpleCov::Formatter::Codecov
86
88
  end
87
89
 
88
90
  if !RECOGNIZED_CIS.include?(ci)
89
- puts ['x>'.red, 'No CI provider detected.'].join(' ')
91
+ puts [red('x>'), 'No CI provider detected.'].join(' ')
90
92
  else
91
93
  puts "==> #{ci} detected"
92
94
  end
@@ -98,7 +100,7 @@ class SimpleCov::Formatter::Codecov
98
100
  params = {
99
101
  'token' => ENV['CODECOV_TOKEN'],
100
102
  'flags' => ENV['CODECOV_FLAG'] || ENV['CODECOV_FLAGS'],
101
- 'package' => "ruby-#{Version::LATEST}"
103
+ 'package' => "ruby-#{VERSION}"
102
104
  }
103
105
 
104
106
  case ci
@@ -158,6 +160,15 @@ class SimpleCov::Formatter::Codecov
158
160
  params[:pr] = ENV['CIRCLE_PR_NUMBER']
159
161
  params[:branch] = ENV['CIRCLE_BRANCH']
160
162
  params[:commit] = ENV['CIRCLE_SHA1']
163
+ when CODEBUILD
164
+ # https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
165
+ params[:service] = 'codebuild'
166
+ params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF'].split('/')[2]
167
+ params[:build] = ENV['CODEBUILD_BUILD_ID']
168
+ params[:commit] = ENV['CODEBUILD_RESOLVED_SOURCE_VERSION']
169
+ params[:job] = ENV['CODEBUILD_BUILD_ID']
170
+ params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL'].match(/.*github.com\/(?<slug>.*).git/)['slug']
171
+ params[:pr] = ENV['CODEBUILD_SOURCE_VERSION'].match(/pr\/(?<pr>.*)/)['pr'] if ENV['CODEBUILD_SOURCE_VERSION']
161
172
  when CODESHIP
162
173
  # https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
163
174
  params[:service] = 'codeship'
@@ -178,9 +189,9 @@ class SimpleCov::Formatter::Codecov
178
189
  when GITHUB
179
190
  # https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables
180
191
  params[:service] = 'github-actions'
181
- params[:branch] = ENV['GITHUB_HEAD_REF'] || ENV['GITHUB_REF'].sub('refs/heads/', '')
182
- # PR refs are in the format: refs/pull/7/merge
183
- params[:pr] = ENV['GITHUB_REF'].split('/')[2] if ENV['GITHUB_HEAD_REF']
192
+ params[:branch] = ENV['GITHUB_HEAD_REF'] || ENV['GITHUB_REF'].sub('refs/head/', '')
193
+ # PR refs are in the format: refs/pull/7/merge for pull_request events
194
+ params[:pr] = ENV['GITHUB_REF'].split('/')[2] unless ENV['GITHUB_HEAD_REF'].nil? || ENV['GITHUB_HEAD_REF'].empty?
184
195
  params[:slug] = ENV['GITHUB_REPOSITORY']
185
196
  params[:build] = ENV['GITHUB_RUN_ID']
186
197
  params[:commit] = ENV['GITHUB_SHA']
@@ -317,7 +328,7 @@ class SimpleCov::Formatter::Codecov
317
328
  def create_report(report)
318
329
  result = {
319
330
  'meta' => {
320
- 'version' => 'codecov-ruby/v' + Version::LATEST
331
+ 'version' => 'codecov-ruby/v' + VERSION
321
332
  }
322
333
  }
323
334
  result.update(result_to_codecov(report))
@@ -325,7 +336,7 @@ class SimpleCov::Formatter::Codecov
325
336
  end
326
337
 
327
338
  def gzip_report(report)
328
- puts ['==>'.green, 'Gzipping contents'].join(' ')
339
+ puts [green('==>'), 'Gzipping contents'].join(' ')
329
340
 
330
341
  io = StringIO.new
331
342
  gzip = Zlib::GzipWriter.new(io)
@@ -337,6 +348,7 @@ class SimpleCov::Formatter::Codecov
337
348
 
338
349
  def upload_to_codecov(ci, report)
339
350
  url = ENV['CODECOV_URL'] || 'https://codecov.io'
351
+ is_enterprise = url != 'https://codecov.io'
340
352
 
341
353
  params = build_params(ci)
342
354
  params_secret_token = params.clone
@@ -350,12 +362,15 @@ class SimpleCov::Formatter::Codecov
350
362
  report['params'] = params
351
363
  report['query'] = query
352
364
 
353
- puts ['==>'.green, 'Uploading reports'].join(' ')
365
+ puts [green('==>'), 'Uploading reports'].join(' ')
354
366
  puts " url: #{url}"
355
367
  puts " query: #{query_without_token}"
356
368
 
357
- response = upload_to_v4(url, gzipped_report, query, query_without_token)
358
- return false if response == false
369
+ response = false
370
+ unless is_enterprise
371
+ response = upload_to_v4(url, gzipped_report, query, query_without_token)
372
+ return false if response == false
373
+ end
359
374
 
360
375
  response || upload_to_v2(url, gzipped_report, query, query_without_token)
361
376
  end
@@ -365,7 +380,7 @@ class SimpleCov::Formatter::Codecov
365
380
  https = Net::HTTP.new(uri.host, uri.port)
366
381
  https.use_ssl = !url.match(/^https/).nil?
367
382
 
368
- puts ['-> '.green, 'Pinging Codecov'].join(' ')
383
+ puts [green('-> '), 'Pinging Codecov'].join(' ')
369
384
  puts "#{url}#{uri.path}?#{query_without_token}"
370
385
 
371
386
  req = Net::HTTP::Post.new(
@@ -378,13 +393,13 @@ class SimpleCov::Formatter::Codecov
378
393
  )
379
394
  response = retry_request(req, https)
380
395
  if !response&.code || response.code == '400'
381
- puts response&.body&.red
396
+ puts red(response&.body)
382
397
  return false
383
398
  end
384
399
 
385
400
  reports_url = response.body.lines[0]
386
401
  s3target = response.body.lines[1]
387
- puts ['-> '.green, 'Uploading to'].join(' ')
402
+ puts [green('-> '), 'Uploading to'].join(' ')
388
403
  puts s3target
389
404
 
390
405
  uri = URI(s3target)
@@ -409,8 +424,8 @@ class SimpleCov::Formatter::Codecov
409
424
  'message' => 'Coverage reports upload successfully'
410
425
  }.to_json
411
426
  else
412
- puts ['-> '.black, 'Could not upload reports via v4 API, defaulting to v2'].join(' ')
413
- puts res.body.red
427
+ puts [black('-> '), 'Could not upload reports via v4 API, defaulting to v2'].join(' ')
428
+ puts red(res.body)
414
429
  nil
415
430
  end
416
431
  end
@@ -420,12 +435,13 @@ class SimpleCov::Formatter::Codecov
420
435
  https = Net::HTTP.new(uri.host, uri.port)
421
436
  https.use_ssl = !url.match(/^https/).nil?
422
437
 
423
- puts ['-> '.green, 'Uploading to Codecov'].join(' ')
424
- puts "#{url}/#{uri.path}?#{query_without_token}"
438
+ puts [green('-> '), 'Uploading to Codecov'].join(' ')
439
+ puts "#{url}#{uri.path}?#{query_without_token}"
425
440
 
426
441
  req = Net::HTTP::Post.new(
427
442
  "#{uri.path}?#{query}",
428
443
  {
444
+ 'Accept' => 'application/json',
429
445
  'Content-Encoding' => 'gzip',
430
446
  'Content-Type' => 'text/plain',
431
447
  'X-Content-Encoding' => 'gzip'
@@ -440,7 +456,7 @@ class SimpleCov::Formatter::Codecov
440
456
  if report['result']['uploaded']
441
457
  puts " View reports at #{report['result']['url']}"
442
458
  else
443
- puts ' X> Failed to upload coverage reports'.red
459
+ puts red(' X> Failed to upload coverage reports')
444
460
  end
445
461
  end
446
462
 
@@ -495,7 +511,7 @@ class SimpleCov::Formatter::Codecov
495
511
  'node_modules/'
496
512
  ]
497
513
 
498
- puts ['==>'.green, 'Appending file network'].join(' ')
514
+ puts [green('==>'), 'Appending file network'].join(' ')
499
515
  network = []
500
516
  Dir['**/*'].keep_if do |file|
501
517
  if File.file?(file) && !file.end_with?(*invalid_file_types) && !file.include?(*invalid_directories)
@@ -581,4 +597,17 @@ class SimpleCov::Formatter::Codecov
581
597
 
582
598
  true
583
599
  end
600
+
601
+ # Convenience color methods
602
+ def black(str)
603
+ str.nil? ? '' : "\e[30m#{str}\e[0m"
604
+ end
605
+
606
+ def red(str)
607
+ str.nil? ? '' : "\e[31m#{str}\e[0m"
608
+ end
609
+
610
+ def green(str)
611
+ str.nil? ? '' : "\e[32m#{str}\e[0m"
612
+ end
584
613
  end
@@ -6,7 +6,19 @@ class TestCodecov < Minitest::Test
6
6
  CI = SimpleCov::Formatter::Codecov.new.detect_ci
7
7
 
8
8
  REALENV =
9
- if CI == SimpleCov::Formatter::Codecov::GITHUB
9
+ if CI == SimpleCov::Formatter::Codecov::CIRCLE
10
+ {
11
+ 'CIRCLECI' => ENV['CIRCLECI'],
12
+ 'CIRCLE_BUILD_NUM' => ENV['CIRCLE_BUILD_NUM'],
13
+ 'CIRCLE_NODE_INDEX' => ENV['CIRCLE_NODE_INDEX'],
14
+ 'CIRCLE_PROJECT_REPONAME' => ENV['CIRCLE_PROJECT_REPONAME'],
15
+ 'CIRCLE_PROJECT_USERNAME' => ENV['CIRCLE_PROJECT_USERNAME'],
16
+ 'CIRCLE_REPOSITORY_URL' => ENV['CIRCLE_REPOSITORY_URL'],
17
+ 'CIRCLE_PR_NUMBER' => ENV['CIRCLE_PR_NUMBER'],
18
+ 'CIRCLE_BRANCH' => ENV['CIRCLE_BRANCH'],
19
+ 'CIRCLE_SHA1' => ENV['CIRCLE_SHA1']
20
+ }
21
+ elsif CI == SimpleCov::Formatter::Codecov::GITHUB
10
22
  {
11
23
  'GITHUB_ACTIONS' => ENV['GITHUB_ACTIONS'],
12
24
  'GITHUB_HEAD_REF' => ENV['GITHUB_HEAD_REF'],
@@ -35,7 +47,7 @@ class TestCodecov < Minitest::Test
35
47
 
36
48
  def test_defined
37
49
  assert defined?(SimpleCov::Formatter::Codecov)
38
- assert defined?(Version::LATEST)
50
+ assert defined?(SimpleCov::Formatter::Codecov::VERSION)
39
51
  end
40
52
 
41
53
  def stub_file(filename, coverage)
@@ -51,6 +63,7 @@ class TestCodecov < Minitest::Test
51
63
  end
52
64
 
53
65
  def upload(success = true)
66
+ WebMock.enable!
54
67
  formatter = SimpleCov::Formatter::Codecov.new
55
68
  result = stub('SimpleCov::Result', files: [
56
69
  stub_file('/path/lib/something.rb', [1, 0, 0, nil, 1, nil]),
@@ -67,7 +80,7 @@ class TestCodecov < Minitest::Test
67
80
  end
68
81
 
69
82
  def success_stubs
70
- stub_request(:post, %r{https:\/\/codecov.io\/upload})
83
+ stub_request(:post, %r{https:\/\/codecov.io\/upload\/v4})
71
84
  .to_return(
72
85
  status: 200,
73
86
  body: "https://codecov.io/gh/fake\n" \
@@ -83,7 +96,7 @@ class TestCodecov < Minitest::Test
83
96
  def assert_successful_upload(data)
84
97
  assert_equal(data['result']['uploaded'], true)
85
98
  assert_equal(data['result']['message'], 'Coverage reports upload successfully')
86
- assert_equal(data['meta']['version'], 'codecov-ruby/v' + Version::LATEST)
99
+ assert_equal(data['meta']['version'], 'codecov-ruby/v' + SimpleCov::Formatter::Codecov::VERSION)
87
100
  assert_equal(data['coverage'].to_json, {
88
101
  'lib/something.rb' => [nil, 1, 0, 0, nil, 1, nil],
89
102
  'lib/somefile.rb' => [nil, 1, nil, 1, 1, 1, 0, 0, nil, 1, nil]
@@ -92,6 +105,7 @@ class TestCodecov < Minitest::Test
92
105
 
93
106
  def setup
94
107
  ENV['CI'] = nil
108
+ ENV['CIRCLECI'] = nil
95
109
  ENV['GITHUB_ACTIONS'] = nil
96
110
  ENV['TRAVIS'] = nil
97
111
  end
@@ -153,6 +167,12 @@ class TestCodecov < Minitest::Test
153
167
  ENV['CIRCLE_PROJECT_USERNAME'] = nil
154
168
  ENV['CIRCLE_SHA1'] = nil
155
169
  ENV['CIRCLECI'] = nil
170
+ ENV['CODEBUILD_CI'] = nil
171
+ ENV['CODEBUILD_BUILD_ID'] = nil
172
+ ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] = nil
173
+ ENV['CODEBUILD_WEBHOOK_HEAD_REF'] = nil
174
+ ENV['CODEBUILD_SOURCE_VERSION'] = nil
175
+ ENV['CODEBUILD_SOURCE_REPO_URL'] = nil
156
176
  ENV['CODECOV_ENV'] = nil
157
177
  ENV['CODECOV_SLUG'] = nil
158
178
  ENV['CODECOV_TOKEN'] = nil
@@ -215,6 +235,23 @@ class TestCodecov < Minitest::Test
215
235
  assert_equal(`git rev-parse HEAD`.strip, result['params'][:commit])
216
236
  end
217
237
 
238
+ def test_enterprise
239
+ stub = stub_request(:post, %r{https:\/\/example.com\/upload\/v2})
240
+ .to_return(
241
+ status: 200,
242
+ body: "{\"id\": \"12345678-1234-abcd-ef12-1234567890ab\", \"message\": \"Coverage reports upload successfully\", \"meta\": { \"status\": 200 }, \"queued\": true, \"uploaded\": true, \"url\": \"https://example.com/github/codecov/codecov-bash/commit/2f6b51562b93e72c610671644fe2a303c5c0e8e5\"}"
243
+ )
244
+
245
+ ENV['CODECOV_URL'] = 'https://example.com'
246
+ ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
247
+ result = upload
248
+ assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
249
+ assert_equal('12345678-1234-abcd-ef12-1234567890ab', result['result']['id'])
250
+ branch = `git rev-parse --abbrev-ref HEAD`.strip
251
+ assert_equal(branch != 'HEAD' ? branch : 'master', result['params'][:branch])
252
+ assert_equal(`git rev-parse HEAD`.strip, result['params'][:commit])
253
+ end
254
+
218
255
  def test_travis
219
256
  ENV['CI'] = 'true'
220
257
  ENV['TRAVIS'] = 'true'
@@ -425,9 +462,29 @@ class TestCodecov < Minitest::Test
425
462
  assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
426
463
  end
427
464
 
428
- def test_github
465
+ def test_github_pull_request
429
466
  ENV['CI'] = 'true'
430
467
  ENV['GITHUB_ACTIONS'] = 'true'
468
+ ENV['GITHUB_HEAD_REF'] = 'patch-2'
469
+ ENV['GITHUB_REF'] = 'refs/pull/7/merge'
470
+ ENV['GITHUB_REPOSITORY'] = 'codecov/ci-repo'
471
+ ENV['GITHUB_RUN_ID'] = '1'
472
+ ENV['GITHUB_SHA'] = 'c739768fcac68144a3a6d82305b9c4106934d31a'
473
+ ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
474
+ result = upload
475
+ assert_equal('github-actions', result['params'][:service])
476
+ assert_equal('c739768fcac68144a3a6d82305b9c4106934d31a', result['params'][:commit])
477
+ assert_equal('codecov/ci-repo', result['params'][:slug])
478
+ assert_equal('1', result['params'][:build])
479
+ assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
480
+ assert_equal('patch-2', result['params'][:branch])
481
+ assert_equal('7', result['params'][:pr])
482
+ end
483
+
484
+ def test_github_push
485
+ ENV['CI'] = 'true'
486
+ ENV['GITHUB_ACTIONS'] = 'true'
487
+ ENV['GITHUB_HEAD_REF'] = nil
431
488
  ENV['GITHUB_REF'] = 'refs/head/master'
432
489
  ENV['GITHUB_REPOSITORY'] = 'codecov/ci-repo'
433
490
  ENV['GITHUB_RUN_ID'] = '1'
@@ -439,6 +496,8 @@ class TestCodecov < Minitest::Test
439
496
  assert_equal('codecov/ci-repo', result['params'][:slug])
440
497
  assert_equal('1', result['params'][:build])
441
498
  assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
499
+ assert_equal('master', result['params'][:branch])
500
+ assert_equal(false, result['params'].key?(:pr))
442
501
  end
443
502
 
444
503
  def test_gitlab
@@ -559,6 +618,27 @@ class TestCodecov < Minitest::Test
559
618
  assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
560
619
  end
561
620
 
621
+ def test_codebuild
622
+ ENV['CODEBUILD_CI'] = "true"
623
+ ENV['CODEBUILD_BUILD_ID'] = "codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3"
624
+ ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] = 'd653b934ed59c1a785cc1cc79d08c9aaa4eba73b'
625
+ ENV['CODEBUILD_WEBHOOK_HEAD_REF'] = 'refs/heads/master'
626
+ ENV['CODEBUILD_SOURCE_VERSION'] = 'pr/123'
627
+ ENV['CODEBUILD_SOURCE_REPO_URL'] = 'https://github.com/owner/repo.git'
628
+ ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
629
+
630
+ result = upload
631
+
632
+ assert_equal("codebuild", result['params'][:service])
633
+ assert_equal("d653b934ed59c1a785cc1cc79d08c9aaa4eba73b", result['params'][:commit])
634
+ assert_equal("codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3", result['params'][:build])
635
+ assert_equal("codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3", result['params'][:job])
636
+ assert_equal("owner/repo", result['params'][:slug])
637
+ assert_equal("master", result['params'][:branch])
638
+ assert_equal("123", result['params'][:pr])
639
+ assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
640
+ end
641
+
562
642
  def test_filenames_are_shortened_correctly
563
643
  ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
564
644
 
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codecov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - codecov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-06 00:00:00.000000000 Z
11
+ date: 2020-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: colorize
14
+ name: json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: json
28
+ name: simplecov
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,13 +39,13 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: simplecov
42
+ name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
- type: :runtime
48
+ type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitest
56
+ name: minitest-ci
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -143,7 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: '0'
146
+ version: '2.4'
147
147
  required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="