simplecov-bitbucket-server 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b782dc526b5e8be15a7f4904605f9a1c52c54323266030e85852444fbfd32ad4
4
+ data.tar.gz: b26568258cd73dc822561fd9c3ba235a619ec200cfbd8eec62aa5f441b254617
5
+ SHA512:
6
+ metadata.gz: 055b88c04b92db4d456c0f9c8ecea4253c56b566a7820e9bb919d382bd3a643b61b9dd13006455c3eafa3bf5edd086f07d9a5cabf08a7a0c6bb87a4df9844c83
7
+ data.tar.gz: 7ac5b3fae7c3a958c2233cabb51d6b73719c57bae2f60538a13e934ea28c752709cc86adaefecff89c44168b76bbfec34fe95f40afca0a725e43f0a4068ec694
@@ -0,0 +1 @@
1
+ require 'simplecov/formatter/bitbucket_server'
@@ -0,0 +1,60 @@
1
+ module SimpleCov
2
+ module Formatter
3
+ class BitbucketServer
4
+ VERSION = '0.1.0'
5
+
6
+ def initialize(base_uri, sha = ENV['GIT_COMMIT'])
7
+ @base_uri = base_uri
8
+ @sha = sha
9
+ end
10
+
11
+ def new
12
+ self
13
+ end
14
+
15
+ def format(result)
16
+ upload(coverage_for_bitbucket(result))
17
+ end
18
+
19
+ private
20
+
21
+ def coverage_for_bitbucket(result)
22
+ { files: files(result) }.to_json
23
+ end
24
+
25
+ def files(result)
26
+ result.files.map do |file|
27
+ {
28
+ path: file.project_filename[1..-1],
29
+ coverage: coverage_string(file)
30
+ }
31
+ end
32
+ end
33
+
34
+ def coverage_string(file)
35
+ covered_line_numbers = file.covered_lines.map(&:line_number)
36
+ missed_line_numbers = file.missed_lines.map(&:line_number)
37
+
38
+ partially_covered_line_numbers, fully_covered_line_numbers =
39
+ covered_line_numbers.partition { |n| file.line_with_missed_branch?(n) }
40
+
41
+ covered = fully_covered_line_numbers.join(',')
42
+ partial = partially_covered_line_numbers.join(',')
43
+ uncovered = missed_line_numbers.join(',')
44
+
45
+ "C:#{covered};P:#{partial};U:#{uncovered}"
46
+ end
47
+
48
+ def upload(coverage)
49
+ Net::HTTP.post(endpoint, coverage, {
50
+ 'Content-Type' => 'application/json',
51
+ 'User-Agent' => "SimpleCov-BitbucketServer/#{VERSION}"
52
+ })
53
+ end
54
+
55
+ def endpoint
56
+ URI.parse("#{@base_uri}/rest/code-coverage/1.0/commits/#{@sha}")
57
+ end
58
+ end
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simplecov-bitbucket-server
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ilya Vassilevsky <i.vasilevskiy@fun-box.ru>
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-03-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: simplecov
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: webmock
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.0'
69
+ description:
70
+ email:
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - lib/simplecov-bitbucket-server.rb
76
+ - lib/simplecov/formatter/bitbucket_server.rb
77
+ homepage: https://github.com/funbox/simplecov-bitbucket-server
78
+ licenses:
79
+ - MIT
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubygems_version: 3.0.3
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: Uploads test coverage data to Bitbucket Server via Code Coverage plugin
100
+ test_files: []