danger-rcov 2.0.1 → 2.0.2
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/danger-rcov.gemspec +1 -0
- data/lib/rcov/gem_version.rb +1 -1
- data/lib/rcov/plugin.rb +2 -2
- data/spec/rcov_spec.rb +2 -2
- metadata +16 -5
- data/lib/rcov/circle_ci.rb +0 -42
- data/spec/rcov/circle_ci_spec.rb +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb3eca7183e1ece80cabaf4b95fc6c37d7e4c433faa8c5360163a642c31edf37
|
4
|
+
data.tar.gz: c91b8bdef890dbf67834ab98d69906bf85a85ff866c67cda07760430a7afdc8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07cb2c4f88c4e1a4c7981e845d54c34b1d7d4c2e522cf01df559ab62891537e9a20b33649dc6275f6b55d16052356b802174a8e246c29ef84514166d34b3f1ce
|
7
|
+
data.tar.gz: 0b91fd1b178bc80fd0b52e78b436e60bb6f51ebe8b94d8c04aa271f9e4184214ac081e7f757aad2c80448e64370ee1e2e7009e4f84c2bb3e59cf0927f5fac513
|
data/danger-rcov.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
+
spec.add_runtime_dependency 'circle_ci_wrapper', '~> 0.0.1'
|
23
24
|
spec.add_runtime_dependency 'danger-plugin-api', '~> 1.0'
|
24
25
|
|
25
26
|
# General ruby development
|
data/lib/rcov/gem_version.rb
CHANGED
data/lib/rcov/plugin.rb
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
require 'open-uri'
|
4
4
|
require 'net/http'
|
5
|
-
|
5
|
+
require 'circle_ci_wrapper'
|
6
6
|
|
7
7
|
module Danger
|
8
8
|
class DangerRcov < Plugin
|
9
9
|
def report(branch_name, build_name = 'build', show_warning = true)
|
10
|
-
current_url, master_url =
|
10
|
+
current_url, master_url = CircleCiWrapper.report_urls_by_branch(branch_name, build_name)
|
11
11
|
|
12
12
|
# Get code coverage report as json from url
|
13
13
|
@current_report = get_report(url: current_url)
|
data/spec/rcov_spec.rb
CHANGED
@@ -29,7 +29,7 @@ module Danger
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'code coverage different' do
|
32
|
-
allow(
|
32
|
+
allow(CircleCiWrapper).to receive(:report_urls_by_branch).and_return(
|
33
33
|
[
|
34
34
|
'https://current.circle-artifacts.com/0/coverage/coverage.json?circle-token=circle-token',
|
35
35
|
'https://master.circle-artifacts.com/0/coverage/coverage.json?circle-token=circle-token'
|
@@ -56,7 +56,7 @@ module Danger
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'same code coverage' do
|
59
|
-
allow(
|
59
|
+
allow(CircleCiWrapper).to receive(:report_urls_by_branch).and_return(
|
60
60
|
[
|
61
61
|
'https://current.circle-artifacts.com/0/coverage/coverage.json?circle-token=circle-token',
|
62
62
|
'https://master.circle-artifacts.com/0/coverage/coverage.json?circle-token=circle-token'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-rcov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guilherme Pereira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: circle_ci_wrapper
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.1
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: danger-plugin-api
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -199,10 +213,8 @@ files:
|
|
199
213
|
- danger-rcov.gemspec
|
200
214
|
- lib/danger_plugin.rb
|
201
215
|
- lib/danger_rcov.rb
|
202
|
-
- lib/rcov/circle_ci.rb
|
203
216
|
- lib/rcov/gem_version.rb
|
204
217
|
- lib/rcov/plugin.rb
|
205
|
-
- spec/rcov/circle_ci_spec.rb
|
206
218
|
- spec/rcov_spec.rb
|
207
219
|
- spec/spec_helper.rb
|
208
220
|
- spec/support/fixtures/current_circle_ci.json
|
@@ -234,7 +246,6 @@ signing_key:
|
|
234
246
|
specification_version: 4
|
235
247
|
summary: Plugin that allows code coverage print
|
236
248
|
test_files:
|
237
|
-
- spec/rcov/circle_ci_spec.rb
|
238
249
|
- spec/rcov_spec.rb
|
239
250
|
- spec/spec_helper.rb
|
240
251
|
- spec/support/fixtures/current_circle_ci.json
|
data/lib/rcov/circle_ci.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Rcov
|
4
|
-
module CircleCi
|
5
|
-
CIRCLE_CI_API_URL = 'https://circleci.com/api/v1.1/project/github'
|
6
|
-
|
7
|
-
def self.get_report_urls_by_branch(branch_name, build_name = 'build')
|
8
|
-
url = "#{base_url}/tree/#{branch_name}?circle-token=#{ENV['CIRCLE_TOKEN']}&limit=6&filter=completed"
|
9
|
-
|
10
|
-
return nil if Net::HTTP.get_response(URI.parse(url)).code != '200'
|
11
|
-
|
12
|
-
data = JSON.parse(URI.parse(url).read)
|
13
|
-
|
14
|
-
latest_build_num = data.select do |build|
|
15
|
-
build&.[]('build_parameters')&.[]('CIRCLE_JOB') == build_name
|
16
|
-
end&.first&.[]('build_num')
|
17
|
-
|
18
|
-
return nil unless latest_build_num
|
19
|
-
|
20
|
-
return [
|
21
|
-
get_report_url("#{base_url}/#{ENV['CIRCLE_BUILD_NUM']}/artifacts?circle-token=#{ENV['CIRCLE_TOKEN']}"),
|
22
|
-
get_report_url("#{base_url}/#{latest_build_num}/artifacts?circle-token=#{ENV['CIRCLE_TOKEN']}", branch_name)
|
23
|
-
]
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.get_report_url(url, branch_name = nil)
|
27
|
-
return nil if Net::HTTP.get_response(URI.parse(url)).code != '200'
|
28
|
-
|
29
|
-
artifacts = JSON.parse(URI.parse(url).read).map { |a| a['url'] }
|
30
|
-
|
31
|
-
coverage_url = artifacts.find { |artifact| artifact&.end_with?('coverage/coverage.json') }
|
32
|
-
|
33
|
-
return nil unless coverage_url
|
34
|
-
|
35
|
-
return "#{coverage_url}?circle-token=#{ENV['CIRCLE_TOKEN']}&branch=#{branch_name}"
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.base_url
|
39
|
-
"#{CIRCLE_CI_API_URL}/#{ENV['CIRCLE_PROJECT_USERNAME']}/#{ENV['CIRCLE_PROJECT_REPONAME']}"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
data/spec/rcov/circle_ci_spec.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require File.expand_path('../spec_helper', __dir__)
|
4
|
-
|
5
|
-
RSpec.describe Rcov::CircleCi do
|
6
|
-
before do
|
7
|
-
allow(ENV).to receive(:[]).with('CIRCLE_PROJECT_USERNAME').and_return('EdgePetrol')
|
8
|
-
allow(ENV).to receive(:[]).with('CIRCLE_PROJECT_REPONAME').and_return('danger-rcov')
|
9
|
-
end
|
10
|
-
|
11
|
-
describe '#get_report_urls_by_branch' do
|
12
|
-
let(:response) { File.read(File.dirname(__FILE__) + '/../support/fixtures/tree_ci.json') }
|
13
|
-
let(:curr_cov_response) { File.read(File.dirname(__FILE__) + '/../support/fixtures/current_circle_ci.json') }
|
14
|
-
let(:master_cov_response) { File.read(File.dirname(__FILE__) + '/../support/fixtures/master_circle_ci.json') }
|
15
|
-
|
16
|
-
before do
|
17
|
-
allow(ENV).to receive(:[]).with('CIRCLE_TOKEN').and_return('token')
|
18
|
-
allow(ENV).to receive(:[]).with('CIRCLE_BUILD_NUM').and_return(56)
|
19
|
-
|
20
|
-
allow(Net::HTTP).to receive_message_chain(:get_response, :code).and_return('200')
|
21
|
-
allow(URI).to receive_message_chain(:parse, :read).and_return(response)
|
22
|
-
|
23
|
-
current_coverage = Struct.new(:read)
|
24
|
-
allow(URI).to receive(:parse).with('https://circleci.com/api/v1.1/project/github/EdgePetrol/danger-rcov/56/artifacts?circle-token=token').and_return(current_coverage)
|
25
|
-
allow(current_coverage).to receive(:read).and_return(curr_cov_response)
|
26
|
-
|
27
|
-
coverage = Struct.new(:read)
|
28
|
-
allow(URI).to receive(:parse).with('https://circleci.com/api/v1.1/project/github/EdgePetrol/danger-rcov/85/artifacts?circle-token=token').and_return(coverage)
|
29
|
-
allow(coverage).to receive(:read).and_return(master_cov_response)
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'returns the correct urls' do
|
33
|
-
expect(described_class.get_report_urls_by_branch('staging')).to eq(
|
34
|
-
[
|
35
|
-
'https://current.circle-artifacts.com/0/coverage/coverage.json?circle-token=token&branch=',
|
36
|
-
'https://master.circle-artifacts.com/0/coverage/coverage.json?circle-token=token&branch=staging'
|
37
|
-
]
|
38
|
-
)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|