simplecov-bitbucket-server 0.1.0
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 +7 -0
- data/lib/simplecov-bitbucket-server.rb +1 -0
- data/lib/simplecov/formatter/bitbucket_server.rb +60 -0
- metadata +100 -0
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: []
|