coveralls-multi 1.3.2 → 1.4.0.beta
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/README.md +6 -8
- data/coveralls-multi.gemspec +4 -2
- data/lib/coveralls-multi.rb +1 -0
- data/lib/coveralls-multi/api.rb +61 -0
- data/lib/coveralls-multi/config.rb +150 -8
- data/lib/coveralls-multi/formatter.rb +3 -2
- data/lib/coveralls-multi/formatters/excoveralls.rb +3 -1
- data/lib/coveralls-multi/formatters/lcov.rb +3 -1
- data/lib/coveralls-multi/formatters/simplecov.rb +3 -2
- data/lib/coveralls-multi/runner.rb +5 -13
- data/lib/coveralls-multi/validator.rb +2 -1
- data/lib/coveralls-multi/version.rb +1 -1
- metadata +41 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ec07bebf8b0ad6cef3922fec3a21ae8da2ef333c2f1d6f350ae46ef7f3faf91
|
4
|
+
data.tar.gz: 8085c40de3074639088bcd9564cd52608b0d2fa007aebf213fc1b52eda9f99b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4db280913be97c2d7d9345522d002d9706803694d816a69227118581a798c701eaf7d9a41130f8b1b4ac7e217c2ec7bf312a6407b353b1669424a3b85fa507a
|
7
|
+
data.tar.gz: a486d86bde16deb33033950b54f7765413853d89b2a8baa862ec4dfd8a4a7a11ab22d33ac198cbb58ad7e3da74a4ec2c16be9d449b23f3db07e1aa096798027a
|
data/.travis.yml
CHANGED
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
|
-
|
|
14
|
-
|
15
|
-
| Elixir
|
16
|
-
| JavaScript | [nyc](https://github.com/istanbuljs/nyc), or any tool that can output an lcov file | `lcov`
|
17
|
-
| Ruby
|
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? [
|
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
|
|
data/coveralls-multi.gemspec
CHANGED
@@ -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
|
-
|
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
|
data/lib/coveralls-multi.rb
CHANGED
@@ -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
|
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']
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
15
|
-
puts 'Validating payload and pushing to Coveralls'
|
14
|
+
puts '[CoverallsMulti] Validating payload'
|
16
15
|
valid = CoverallsMulti::Validator.new(payload).run
|
17
|
-
|
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
|
-
|
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
|
-
|
22
|
+
puts '[CoverallsMulti] Payload could not be parsed to JSON!'
|
23
|
+
raise e
|
23
24
|
end
|
24
25
|
|
25
26
|
def valid_coveralls_payload?
|
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.
|
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
|
11
|
+
date: 2019-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: coveralls-
|
14
|
+
name: coveralls-lcov
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
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:
|
26
|
+
version: 1.5.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: httparty
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
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:
|
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:
|
189
|
+
version: 1.3.1
|
161
190
|
requirements: []
|
162
|
-
rubygems_version: 3.0.
|
191
|
+
rubygems_version: 3.0.3
|
163
192
|
signing_key:
|
164
193
|
specification_version: 4
|
165
194
|
summary: Coveralls client for multi-language repos.
|