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 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