coveralls-multi 1.3.2 → 1.4.0.beta

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e5576080e0e7d7a58994aaf0d9940b330eadf6302259d21362e95c82028a31e
4
- data.tar.gz: de58bfaa0be98e33c48372fadac5014cf42566ddadeee9b6f39fb268c764e176
3
+ metadata.gz: 7ec07bebf8b0ad6cef3922fec3a21ae8da2ef333c2f1d6f350ae46ef7f3faf91
4
+ data.tar.gz: 8085c40de3074639088bcd9564cd52608b0d2fa007aebf213fc1b52eda9f99b7
5
5
  SHA512:
6
- metadata.gz: a1cbf567889f1ae27bebd55cb5a384ca0352349272f8194961c8556895210d954c051e78df8ec84987c07456c719317a25f92eccba298d68388e6310ea92b7c8
7
- data.tar.gz: 53548591c5096f87634f4839499c393117799ff99b7f26eefec8ca0b6e0cf0b77dcfc12b66d1916bfa3b39d0d1080811e891796b2d81ff1bad94f39f0db3c74d
6
+ metadata.gz: f4db280913be97c2d7d9345522d002d9706803694d816a69227118581a798c701eaf7d9a41130f8b1b4ac7e217c2ec7bf312a6407b353b1669424a3b85fa507a
7
+ data.tar.gz: a486d86bde16deb33033950b54f7765413853d89b2a8baa862ec4dfd8a4a7a11ab22d33ac198cbb58ad7e3da74a4ec2c16be9d449b23f3db07e1aa096798027a
data/.travis.yml CHANGED
@@ -12,4 +12,4 @@ deploy:
12
12
  on:
13
13
  tags: true
14
14
  repo: radditude/coveralls-multi
15
- branch: master
15
+ branch: main
data/README.md CHANGED
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  [![coveralls-multi](https://img.shields.io/gem/v/coveralls-multi.svg)](https://rubygems.org/gems/coveralls-multi) [![Travis](https://img.shields.io/travis/radditude/coveralls-multi/master.svg)](https://travis-ci.org/radditude/coveralls-multi) [![Coverage Status](https://coveralls.io/repos/github/radditude/coveralls-multi/badge.svg)](https://coveralls.io/github/radditude/coveralls-multi)
4
2
 
5
3
  # CoverallsMulti
@@ -10,11 +8,11 @@ CoverallsMulti is a Coveralls client with support for multi-language repos. Once
10
8
 
11
9
  #### Languages & Output Formats
12
10
 
13
- | *Language* | *Coverage tool* | *Config key* |
14
- |----------- | --------------- | ------------ |
15
- | Elixir | [ExCoveralls](https://github.com/parroty/excoveralls) (JSON output) | `excoveralls` |
16
- | JavaScript | [nyc](https://github.com/istanbuljs/nyc), or any tool that can output an lcov file | `lcov` |
17
- | Ruby | [SimpleCov](https://github.com/colszowka/simplecov) | `simplecov` |
11
+ | _Language_ | _Coverage tool_ | _Config key_ |
12
+ | ---------- | ---------------------------------------------------------------------------------- | ------------- |
13
+ | Elixir | [ExCoveralls](https://github.com/parroty/excoveralls) (JSON output) | `excoveralls` |
14
+ | JavaScript | [nyc](https://github.com/istanbuljs/nyc), or any tool that can output an lcov file | `lcov` |
15
+ | Ruby | [SimpleCov](https://github.com/colszowka/simplecov) | `simplecov` |
18
16
 
19
17
  #### CI Providers
20
18
 
@@ -22,7 +20,7 @@ CoverallsMulti is a Coveralls client with support for multi-language repos. Once
22
20
 
23
21
  #### Coming Soon
24
22
 
25
- Have another language, tool, or CI provider you'd like to see supported? [Let me know](https://github.com/radditude/coveralls-multi/issues/new).
23
+ Have another language, tool, or CI provider you'd like to see supported? [File an issue](https://github.com/radditude/coveralls-multi/issues/new).
26
24
 
27
25
  ## Installation
28
26
 
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = 'Coveralls client for multi-language repos.'
13
13
  spec.description = 'A configurable Coveralls client that supports merging coverage from multiple languages & test suites.'
14
- # spec.homepage = "TODO: Put your gem's website or public repo URL here."
14
+ spec.homepage = 'https://github.com/radditude/coveralls-multi'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -20,12 +20,14 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = 'coveralls-multi'
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_dependency 'coveralls-revelry', '~> 0.8.23'
24
23
  spec.add_dependency 'coveralls-lcov', '~> 1.5.1'
24
+ spec.add_dependency 'httparty', '~> 0.16.4'
25
25
 
26
26
  spec.add_development_dependency 'bundler', '~> 1.16'
27
+ spec.add_development_dependency 'coveralls', '~> 0.8.22'
27
28
  spec.add_development_dependency 'pry', '~> 0.11.3'
28
29
  spec.add_development_dependency 'rake', '~> 10.0'
29
30
  spec.add_development_dependency 'rspec', '~> 3.0'
30
31
  spec.add_development_dependency 'simplecov', '~> 0.16.1'
32
+ spec.add_development_dependency 'webmock', '~> 3.5.1'
31
33
  end
@@ -1,3 +1,4 @@
1
+ require 'coveralls-multi/api'
1
2
  require 'coveralls-multi/config'
2
3
  require 'coveralls-multi/formatter'
3
4
  require 'coveralls-multi/runner'
@@ -0,0 +1,61 @@
1
+ require 'json'
2
+ require 'httparty'
3
+ require 'tempfile'
4
+
5
+ module CoverallsMulti
6
+ # handles the post request to the Coveralls API
7
+ class API
8
+ class << self
9
+ def post_json(hash)
10
+ url = CoverallsMulti::Config.api_endpoint
11
+ puts "[CoverallsMulti] Submitting to #{url}"
12
+
13
+ response = HTTParty.post(
14
+ url,
15
+ body: {
16
+ json_file: json_file(hash),
17
+ },
18
+ )
19
+
20
+ puts "[CoverallsMulti] #{response['message']}" if response['message']
21
+ puts "[CoverallsMulti] #{response['url']}" if response['url']
22
+ puts "[CoverallsMulti] Error: #{response['error']}" if response['error']
23
+
24
+ response
25
+ end
26
+
27
+ def json_file(hash)
28
+ hash = add_api_config(hash)
29
+ write_to_file(hash)
30
+ file = nil
31
+
32
+ Tempfile.open(['coveralls-upload', 'json']) do |f|
33
+ f.write(hash.to_json)
34
+ file = f
35
+ end
36
+
37
+ File.new(file.path, 'rb')
38
+ end
39
+
40
+ def write_to_file(hash)
41
+ return unless CoverallsMulti::Config.debug_mode
42
+
43
+ output_file_path = "#{CoverallsMulti::Config.root}/coveralls.json"
44
+ puts "[CoverallsMulti] Debug mode on - writing results to #{output_file_path}"
45
+ File.write(output_file_path, JSON.pretty_generate(hash))
46
+ end
47
+
48
+ def add_api_config(hash)
49
+ config = CoverallsMulti::Config.api_config
50
+
51
+ if CoverallsMulti::Config.debug_mode
52
+ puts '[CoverallsMulti] Submitting with config:'
53
+ output = JSON.pretty_generate(config).gsub(/"repo_token": ?"(.*?)"/, '"repo_token": "[secure]"')
54
+ puts output
55
+ end
56
+
57
+ hash.merge(config)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -4,22 +4,22 @@ module CoverallsMulti
4
4
  # reads .coveralls.yml and sets module config options
5
5
  class Config
6
6
  class << self
7
+ def yaml_config
8
+ raise "[CoverallsMulti] Couldn't find config file" unless configuration_path && File.exist?(configuration_path)
9
+
10
+ YAML.load_file(configuration_path)
11
+ end
12
+
7
13
  def files
8
14
  yml = yaml_config['multi']
9
15
 
10
- raise "Couldn't find coveralls-multi configuration in .coveralls.yml" unless yml
16
+ raise "[CoverallsMulti] Couldn't find multi configuration in .coveralls.yml" unless yml
11
17
 
12
18
  yml
13
19
  end
14
20
 
15
21
  def debug_mode
16
- yaml_config['debug_mode'] && yaml_config['debug_mode'] == true
17
- end
18
-
19
- def yaml_config
20
- raise "Couldn't find config file" unless configuration_path && File.exist?(configuration_path)
21
-
22
- YAML.load_file(configuration_path)
22
+ yaml_config['debug_mode'] || ENV['COVERALLS_DEBUG']
23
23
  end
24
24
 
25
25
  def root
@@ -29,6 +29,148 @@ module CoverallsMulti
29
29
  def configuration_path
30
30
  File.expand_path(File.join(root, '.coveralls.yml')) if root
31
31
  end
32
+
33
+ def api_domain
34
+ ENV['COVERALLS_ENDPOINT'] || 'https://coveralls.io'
35
+ end
36
+
37
+ def api_endpoint
38
+ "#{api_domain}/api/v1/jobs"
39
+ end
40
+
41
+ def api_config
42
+ config = {
43
+ git: git_info,
44
+ repo_token: ENV['COVERALLS_REPO_TOKEN'] || yaml_config['repo_token'] || yaml_config['repo_secret_token'],
45
+ }
46
+
47
+ add_ci_env(config)
48
+ add_standard_service_params_for_generic_ci(config)
49
+ config
50
+ end
51
+
52
+ def git_info
53
+ Dir.chdir(root) do
54
+ {
55
+ head: git_head,
56
+ branch: git_branch,
57
+ remotes: git_remotes,
58
+ }
59
+ end
60
+ end
61
+
62
+ def git_head
63
+ {
64
+ id: ENV.fetch('GIT_ID', `git log -1 --pretty=format:'%H'`),
65
+ author_name: ENV.fetch('GIT_AUTHOR_NAME', `git log -1 --pretty=format:'%aN'`),
66
+ author_email: ENV.fetch('GIT_AUTHOR_EMAIL', `git log -1 --pretty=format:'%ae'`),
67
+ committer_name: ENV.fetch('GIT_COMMITTER_NAME', `git log -1 --pretty=format:'%cN'`),
68
+ committer_email: ENV.fetch('GIT_COMMITTER_EMAIL', `git log -1 --pretty=format:'%ce'`),
69
+ message: ENV.fetch('GIT_MESSAGE', `git log -1 --pretty=format:'%s'`),
70
+ }
71
+ end
72
+
73
+ def git_branch
74
+ ENV.fetch('GIT_BRANCH', `git rev-parse --abbrev-ref HEAD`)
75
+ end
76
+
77
+ def git_remotes
78
+ `git remote -v`.split(/\n/).map do |remote|
79
+ split_line = remote.split(' ').compact
80
+ { name: split_line[0], url: split_line[1] }
81
+ end.uniq
82
+ end
83
+
84
+ def add_ci_env(config)
85
+ return add_service_params_for_travis(config, yaml_config[:service_name] || nil) if ENV['TRAVIS']
86
+ return add_service_params_for_circleci(config) if ENV['CIRCLECI']
87
+ return add_service_params_for_semaphore(config) if ENV['SEMAPHORE']
88
+ return add_service_params_for_jenkins(config) if ENV['JENKINS_URL'] || ENV['JENKINS_HOME']
89
+ return add_service_params_for_appveyor(config) if ENV['APPVEYOR']
90
+ return add_service_params_for_tddium(config) if ENV['TDDIUM']
91
+ return add_service_params_for_gitlab(config) if ENV['GITLAB_CI']
92
+ return add_service_params_for_coveralls_local(config) if ENV['COVERALLS_RUN_LOCALLY']
93
+
94
+ config
95
+ end
96
+
97
+ def add_service_params_for_travis(config, service_name)
98
+ config[:service_job_id] = ENV['TRAVIS_JOB_ID']
99
+ config[:service_pull_request] = ENV['TRAVIS_PULL_REQUEST'] unless ENV['TRAVIS_PULL_REQUEST'] == 'false'
100
+ config[:service_name] = service_name || 'travis-ci'
101
+ config[:service_branch] = ENV['TRAVIS_BRANCH']
102
+ config
103
+ end
104
+
105
+ def add_service_params_for_circleci(config)
106
+ config[:service_name] = 'circleci'
107
+ config[:service_number] = ENV['CIRCLE_BUILD_NUM']
108
+ config[:service_pull_request] = (ENV['CI_PULL_REQUEST'] || '')[/(\d+)$/, 1]
109
+ config[:parallel] = ENV['CIRCLE_NODE_TOTAL'].to_i > 1
110
+ config[:service_job_number] = ENV['CIRCLE_NODE_INDEX']
111
+ config
112
+ end
113
+
114
+ def add_service_params_for_semaphore(config)
115
+ config[:service_name] = 'semaphore'
116
+ config[:service_number] = ENV['SEMAPHORE_BUILD_NUMBER']
117
+ config[:service_pull_request] = ENV['PULL_REQUEST_NUMBER']
118
+ config
119
+ end
120
+
121
+ def add_service_params_for_jenkins(config)
122
+ config[:service_name] = 'jenkins'
123
+ config[:service_number] = ENV['BUILD_NUMBER']
124
+ config[:service_branch] = ENV['BRANCH_NAME']
125
+ config[:service_pull_request] = ENV['ghprbPullId']
126
+ config
127
+ end
128
+
129
+ def add_service_params_for_appveyor(config)
130
+ config[:service_name] = 'appveyor'
131
+ config[:service_number] = ENV['APPVEYOR_BUILD_VERSION']
132
+ config[:service_branch] = ENV['APPVEYOR_REPO_BRANCH']
133
+ config[:commit_sha] = ENV['APPVEYOR_REPO_COMMIT']
134
+ repo_name = ENV['APPVEYOR_REPO_NAME']
135
+ config[:service_build_url] = format('https://ci.appveyor.com/project/%s/build/%s', repo_name, config[:service_number])
136
+ config
137
+ end
138
+
139
+ def add_service_params_for_tddium(config)
140
+ config[:service_name] = 'tddium'
141
+ config[:service_number] = ENV['TDDIUM_SESSION_ID']
142
+ config[:service_job_number] = ENV['TDDIUM_TID']
143
+ config[:service_pull_request] = ENV['TDDIUM_PR_ID']
144
+ config[:service_branch] = ENV['TDDIUM_CURRENT_BRANCH']
145
+ config[:service_build_url] = "https://ci.solanolabs.com/reports/#{ENV['TDDIUM_SESSION_ID']}"
146
+ config
147
+ end
148
+
149
+ def add_service_params_for_gitlab(config)
150
+ config[:service_name] = 'gitlab-ci'
151
+ config[:service_job_number] = ENV['CI_BUILD_NAME']
152
+ config[:service_job_id] = ENV['CI_BUILD_ID']
153
+ config[:service_branch] = ENV['CI_BUILD_REF_NAME']
154
+ config[:commit_sha] = ENV['CI_BUILD_REF']
155
+ config
156
+ end
157
+
158
+ def add_service_params_for_coveralls_local(config)
159
+ config[:service_job_id] = nil
160
+ config[:service_name] = 'coveralls-multi'
161
+ config[:service_event_type] = 'manual'
162
+ config
163
+ end
164
+
165
+ def add_standard_service_params_for_generic_ci(config)
166
+ config[:service_name] ||= ENV['CI_NAME']
167
+ config[:service_number] ||= ENV['CI_BUILD_NUMBER']
168
+ config[:service_job_id] ||= ENV['CI_JOB_ID']
169
+ config[:service_build_url] ||= ENV['CI_BUILD_URL']
170
+ config[:service_branch] ||= ENV['CI_BRANCH']
171
+ config[:service_pull_request] ||= (ENV['CI_PULL_REQUEST'] || '')[/(\d+)$/, 1]
172
+ config
173
+ end
32
174
  end
33
175
  end
34
176
  end
@@ -18,14 +18,15 @@ module CoverallsMulti
18
18
  src_file['source_digest'] = src_digest
19
19
  src_file
20
20
  end
21
- puts 'Added source digests'
21
+ puts '[CoverallsMulti] Added source digests'
22
22
  merged_files
23
23
  end
24
24
 
25
25
  def parse_json(path)
26
26
  JSON.parse(IO.read("#{CoverallsMulti::Config.root}/#{path}"))
27
27
  rescue StandardError => e
28
- raise e, "Could not parse file at #{path}"
28
+ puts "[CoverallsMulti] Could not parse file at #{path}"
29
+ raise e
29
30
  end
30
31
  end
31
32
  end
@@ -21,7 +21,9 @@ module CoverallsMulti
21
21
  end
22
22
  source_files
23
23
  rescue StandardError => e
24
- raise e, "There was a problem converting the excoveralls file at #{file_path}"
24
+ puts "[CoverallsMulti] There was a problem converting the excoveralls file at #{file_path}."
25
+ puts '[CoverallsMulti] Make sure the file exists.'
26
+ raise e
25
27
  end
26
28
  end
27
29
  end
@@ -13,7 +13,9 @@ module CoverallsMulti
13
13
  # HACK: stringify keys without iterating over the whole array of hashes
14
14
  JSON.parse(JSON.dump(file[:source_files]))
15
15
  rescue StandardError, SystemExit => e
16
- raise e, "There was a problem converting the lcov file at #{file_path}"
16
+ puts "[CoverallsMulti] There was a problem converting the lcov file at #{file_path}."
17
+ puts '[CoverallsMulti] Make sure the file exists.'
18
+ raise e
17
19
  end
18
20
  end
19
21
  end
@@ -28,10 +28,11 @@ module CoverallsMulti
28
28
  end
29
29
  end
30
30
  rescue StandardError => e
31
- raise e, "There was a problem formatting the simplecov report at #{file_path}"
31
+ puts "[CoverallsMulti] There was a problem formatting the simplecov report at #{file_path}."
32
+ puts '[CoverallsMulti] Make sure the file exists.'
33
+ raise e
32
34
  end
33
35
 
34
- puts 'SimpleCov report reformatted to prepare for merge'
35
36
  source_files
36
37
  end
37
38
  end
@@ -11,18 +11,9 @@ module CoverallsMulti
11
11
 
12
12
  def start
13
13
  payload = merge
14
- write_to_file(payload)
15
- puts 'Validating payload and pushing to Coveralls'
14
+ puts '[CoverallsMulti] Validating payload'
16
15
  valid = CoverallsMulti::Validator.new(payload).run
17
- Coveralls::API.post_json('jobs', payload) if valid
18
- end
19
-
20
- def write_to_file(payload)
21
- return unless CoverallsMulti::Config.debug_mode
22
-
23
- output_file_path = "#{CoverallsMulti::Config.root}/coveralls.json"
24
- puts "Debug mode on - writing results to #{output_file_path}"
25
- File.write(output_file_path, JSON.pretty_generate(payload))
16
+ CoverallsMulti::API.post_json(payload) if valid
26
17
  end
27
18
 
28
19
  def merge
@@ -30,7 +21,7 @@ module CoverallsMulti
30
21
  merged = { 'source_files' => source_files }
31
22
  CoverallsMulti::Formatter.add_source_digests(merged)
32
23
 
33
- puts 'All files merged and formatted'
24
+ puts '[CoverallsMulti] All coverage files merged and formatted'
34
25
  merged
35
26
  end
36
27
 
@@ -50,7 +41,8 @@ module CoverallsMulti
50
41
  string_klass = "CoverallsMulti::Formatter::#{string.capitalize}"
51
42
  Object.const_get(string_klass)
52
43
  rescue NameError => e
53
- raise e, "Could not find formatter #{string_klass}"
44
+ puts "[CoverallsMulti] Could not find formatter #{string_klass}"
45
+ raise e
54
46
  end
55
47
  end
56
48
  end
@@ -19,7 +19,8 @@ module CoverallsMulti
19
19
  parsed_json = JSON.dump(@payload)
20
20
  parsed_json
21
21
  rescue JSON::UnparserError => e
22
- raise e, 'Payload could not be parsed to JSON!'
22
+ puts '[CoverallsMulti] Payload could not be parsed to JSON!'
23
+ raise e
23
24
  end
24
25
 
25
26
  def valid_coveralls_payload?
@@ -1,3 +1,3 @@
1
1
  module CoverallsMulti
2
- VERSION = '1.3.2'.freeze
2
+ VERSION = '1.4.0.beta'.freeze
3
3
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coveralls-multi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - CJ Horton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-08 00:00:00.000000000 Z
11
+ date: 2019-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: coveralls-revelry
14
+ name: coveralls-lcov
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.8.23
19
+ version: 1.5.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.8.23
26
+ version: 1.5.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: coveralls-lcov
28
+ name: httparty
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.5.1
33
+ version: 0.16.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.5.1
40
+ version: 0.16.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.16'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.22
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.22
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: 0.16.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: webmock
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 3.5.1
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 3.5.1
111
139
  description: A configurable Coveralls client that supports merging coverage from multiple
112
140
  languages & test suites.
113
141
  email:
@@ -132,6 +160,7 @@ files:
132
160
  - bin/test
133
161
  - coveralls-multi.gemspec
134
162
  - lib/coveralls-multi.rb
163
+ - lib/coveralls-multi/api.rb
135
164
  - lib/coveralls-multi/config.rb
136
165
  - lib/coveralls-multi/formatter.rb
137
166
  - lib/coveralls-multi/formatters/excoveralls.rb
@@ -140,7 +169,7 @@ files:
140
169
  - lib/coveralls-multi/runner.rb
141
170
  - lib/coveralls-multi/validator.rb
142
171
  - lib/coveralls-multi/version.rb
143
- homepage:
172
+ homepage: https://github.com/radditude/coveralls-multi
144
173
  licenses:
145
174
  - MIT
146
175
  metadata: {}
@@ -155,11 +184,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
184
  version: '0'
156
185
  required_rubygems_version: !ruby/object:Gem::Requirement
157
186
  requirements:
158
- - - ">="
187
+ - - ">"
159
188
  - !ruby/object:Gem::Version
160
- version: '0'
189
+ version: 1.3.1
161
190
  requirements: []
162
- rubygems_version: 3.0.2
191
+ rubygems_version: 3.0.3
163
192
  signing_key:
164
193
  specification_version: 4
165
194
  summary: Coveralls client for multi-language repos.