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 +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
|
[](https://rubygems.org/gems/coveralls-multi) [](https://travis-ci.org/radditude/coveralls-multi) [](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.
|