danger-rcov 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63667e8810c7bbabb9090870ac9e7c819179c9b1052dac34400d5f19f5cd6435
4
- data.tar.gz: cd455620f49bc1db1e90bd609f7d3c629dd9602dcbefae1b1a62c71b1e082dad
3
+ metadata.gz: fb3eca7183e1ece80cabaf4b95fc6c37d7e4c433faa8c5360163a642c31edf37
4
+ data.tar.gz: c91b8bdef890dbf67834ab98d69906bf85a85ff866c67cda07760430a7afdc8d
5
5
  SHA512:
6
- metadata.gz: 5c7634c90b57061edf0ffa1d60e262b279eaea62ce2fc52f2595ca956a6be94aefbec2ced0af935f2045f37dea8d7ec5e7adf53c57c28af7d39d9b79b8389a07
7
- data.tar.gz: dfcb8306c635a1a4b0f5e293a3070679d13762293a31dfaba650cdcab7a7150eac446e0443a763e49fb5e13a463d697792eab00536dad69be962934feb9734c8
6
+ metadata.gz: 07cb2c4f88c4e1a4c7981e845d54c34b1d7d4c2e522cf01df559ab62891537e9a20b33649dc6275f6b55d16052356b802174a8e246c29ef84514166d34b3f1ce
7
+ data.tar.gz: 0b91fd1b178bc80fd0b52e78b436e60bb6f51ebe8b94d8c04aa271f9e4184214ac081e7f757aad2c80448e64370ee1e2e7009e4f84c2bb3e59cf0927f5fac513
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rcov
4
- VERSION = '2.0.1'
4
+ VERSION = '2.0.2'
5
5
  end
@@ -2,12 +2,12 @@
2
2
 
3
3
  require 'open-uri'
4
4
  require 'net/http'
5
- require_relative 'circle_ci'
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 = Rcov::CircleCi.get_report_urls_by_branch(branch_name, build_name)
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)
@@ -29,7 +29,7 @@ module Danger
29
29
  end
30
30
 
31
31
  it 'code coverage different' do
32
- allow(Rcov::CircleCi).to receive(:get_report_urls_by_branch).and_return(
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(Rcov::CircleCi).to receive(:get_report_urls_by_branch).and_return(
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.1
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-08-28 00:00:00.000000000 Z
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
@@ -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
@@ -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