codemonitor 0.6.3 → 0.6.5
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/.gitignore +2 -0
- data/Gemfile.lock +8 -8
- data/README.md +15 -1
- data/engines/knip/extractor.rb +87 -0
- data/engines/packwerk/extractor.rb +0 -1
- data/exe/codemonitor +13 -11
- data/lib/codemonitor/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2ae4cb692b07faaadf879b17c6b55cc72ac409190809049ab434eac84bf3e19
|
4
|
+
data.tar.gz: 79824fce726d21204bb8997fccdeb92c1dd6b7ff30b81b42a85f3d9edc3ff86f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efda8e213c3f22f39e5d51fea8eadec56dc809ea5b945abdfce93c1a0a99e5616c67b900151df08b76c638e5f746b5956bff8eefd0cfe315dc3c3d14ffd44d36
|
7
|
+
data.tar.gz: 15c848dd5a8d572120f68786ac6a75fe9ddb9c92578dce6cda3cc24cb4f8124e30789d68857014e910dde0f0e58910f893b8825c2d6e0940201a99f6f8e1ccde
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
codemonitor (0.6.
|
4
|
+
codemonitor (0.6.4)
|
5
5
|
dogapi (~> 1.45)
|
6
6
|
octokit (~> 4.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
addressable (2.8.
|
12
|
-
public_suffix (>= 2.0.2, <
|
11
|
+
addressable (2.8.1)
|
12
|
+
public_suffix (>= 2.0.2, < 6.0)
|
13
13
|
ast (2.4.2)
|
14
14
|
coderay (1.1.3)
|
15
15
|
diff-lcs (1.3)
|
16
16
|
dogapi (1.45.0)
|
17
17
|
multi_json
|
18
|
-
faraday (2.
|
19
|
-
faraday-net_http (
|
18
|
+
faraday (2.7.4)
|
19
|
+
faraday-net_http (>= 2.0, < 3.1)
|
20
20
|
ruby2_keywords (>= 0.0.4)
|
21
|
-
faraday-net_http (
|
21
|
+
faraday-net_http (3.0.2)
|
22
22
|
method_source (1.0.0)
|
23
23
|
multi_json (1.15.0)
|
24
|
-
octokit (4.25.
|
24
|
+
octokit (4.25.1)
|
25
25
|
faraday (>= 1, < 3)
|
26
26
|
sawyer (~> 0.9)
|
27
27
|
parallel (1.20.1)
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
pry (0.13.1)
|
31
31
|
coderay (~> 1.1)
|
32
32
|
method_source (~> 1.0)
|
33
|
-
public_suffix (
|
33
|
+
public_suffix (5.0.1)
|
34
34
|
rainbow (3.0.0)
|
35
35
|
rake (13.0.3)
|
36
36
|
regexp_parser (2.1.1)
|
data/README.md
CHANGED
@@ -89,9 +89,23 @@ semgrep --json -o semgrep.output.json
|
|
89
89
|
|
90
90
|
`CODEMONITOR_SEMGREP_THRESHOLD`: Don't emit metrics about rubocop cops that are above of this threshold. (Default: `50`)
|
91
91
|
|
92
|
+
## Knip
|
93
|
+
|
94
|
+
Collect multiple metrics from [Knip](https://knip.dev/)
|
95
|
+
|
96
|
+
**Requirements / Setup**:
|
97
|
+
|
98
|
+
You need a `knip.output.json` file present in the current folder.
|
99
|
+
|
100
|
+
You can generate the `knip.output.json` file with this example command:
|
101
|
+
|
102
|
+
```
|
103
|
+
knip --reporter json > knip.output.json
|
104
|
+
```
|
105
|
+
|
92
106
|
## Sorbet
|
93
107
|
|
94
|
-
Collect multiple metrics from
|
108
|
+
Collect multiple metrics from [Sorbet](https://sorbet.org/) configured.
|
95
109
|
|
96
110
|
**Requirements / Setup**:
|
97
111
|
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Engines
|
4
|
+
module Knip
|
5
|
+
class Extractor
|
6
|
+
METRICS = %i[
|
7
|
+
knip_number_of_dependecies
|
8
|
+
knip_number_of_devDependencies
|
9
|
+
knip_number_of_optionalPeerDependencies
|
10
|
+
knip_number_of_unlisted
|
11
|
+
knip_number_of_binaries
|
12
|
+
knip_number_of_unresolved
|
13
|
+
knip_number_of_exports
|
14
|
+
knip_number_of_types
|
15
|
+
knip_number_of_enumMembers
|
16
|
+
knip_number_of_duplicates
|
17
|
+
].freeze
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
end
|
21
|
+
|
22
|
+
def call(provider)
|
23
|
+
metrics = METRICS.map do |metric|
|
24
|
+
[metric, send(metric)]
|
25
|
+
end.to_h
|
26
|
+
|
27
|
+
provider.emit(metrics)
|
28
|
+
end
|
29
|
+
|
30
|
+
def requirements?
|
31
|
+
File.exist?('knip.output.json')
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def knip
|
37
|
+
@knip ||= JSON.parse(File.read('knip.output.json'))
|
38
|
+
end
|
39
|
+
|
40
|
+
def by_type(type)
|
41
|
+
knip['issues'].reduce(0) do |total, issue|
|
42
|
+
total + issue[type].length
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def knip_number_of_dependecies
|
47
|
+
by_type('dependencies')
|
48
|
+
end
|
49
|
+
|
50
|
+
def knip_number_of_devDependencies
|
51
|
+
by_type('devDependencies')
|
52
|
+
end
|
53
|
+
|
54
|
+
def knip_number_of_optionalPeerDependencies
|
55
|
+
by_type('optionalPeerDependencies')
|
56
|
+
end
|
57
|
+
|
58
|
+
def knip_number_of_unlisted
|
59
|
+
by_type('unlisted')
|
60
|
+
end
|
61
|
+
|
62
|
+
def knip_number_of_binaries
|
63
|
+
by_type('binaries')
|
64
|
+
end
|
65
|
+
|
66
|
+
def knip_number_of_unresolved
|
67
|
+
by_type('unresolved')
|
68
|
+
end
|
69
|
+
|
70
|
+
def knip_number_of_exports
|
71
|
+
by_type('exports')
|
72
|
+
end
|
73
|
+
|
74
|
+
def knip_number_of_types
|
75
|
+
by_type('types')
|
76
|
+
end
|
77
|
+
|
78
|
+
def knip_number_of_enumMembers
|
79
|
+
by_type('enumMembers')
|
80
|
+
end
|
81
|
+
|
82
|
+
def knip_number_of_duplicates
|
83
|
+
by_type('duplicates')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/exe/codemonitor
CHANGED
@@ -4,19 +4,20 @@
|
|
4
4
|
require_relative '../providers/console'
|
5
5
|
require_relative '../providers/datadog'
|
6
6
|
|
7
|
-
require_relative '../engines/
|
7
|
+
require_relative '../engines/custom/extractor'
|
8
8
|
require_relative '../engines/debug/extractor'
|
9
|
+
require_relative '../engines/eslint/extractor'
|
9
10
|
require_relative '../engines/git/extractor'
|
10
11
|
require_relative '../engines/github/extractor'
|
12
|
+
require_relative '../engines/jest-json-summary/extractor'
|
13
|
+
require_relative '../engines/knip/extractor'
|
11
14
|
require_relative '../engines/npm/extractor'
|
12
15
|
require_relative '../engines/packwerk/extractor'
|
13
16
|
require_relative '../engines/rubocop/extractor'
|
14
|
-
require_relative '../engines/semgrep/extractor'
|
15
|
-
require_relative '../engines/sorbet/extractor'
|
16
17
|
require_relative '../engines/scc/extractor'
|
17
|
-
require_relative '../engines/
|
18
|
-
require_relative '../engines/jest-json-summary/extractor'
|
18
|
+
require_relative '../engines/semgrep/extractor'
|
19
19
|
require_relative '../engines/simplecov-json-coverage/extractor'
|
20
|
+
require_relative '../engines/sorbet/extractor'
|
20
21
|
|
21
22
|
PROVIDERS = {
|
22
23
|
console: Providers::Console,
|
@@ -24,19 +25,20 @@ PROVIDERS = {
|
|
24
25
|
}.freeze
|
25
26
|
|
26
27
|
EXTRACTORS = {
|
27
|
-
|
28
|
+
custom: Engines::Custom::Extractor,
|
28
29
|
debug: Engines::Debug::Extractor,
|
30
|
+
eslint: Engines::Eslint::Extractor,
|
29
31
|
git: Engines::Git::Extractor,
|
30
32
|
github: Engines::Github::Extractor,
|
33
|
+
jest_json_summary: Engines::JestJsonSummary::Extractor,
|
34
|
+
knip: Engines::Knip::Extractor,
|
31
35
|
npm: Engines::Npm::Extractor,
|
32
36
|
packwerk: Engines::Packwerk::Extractor,
|
33
37
|
rubocop: Engines::Rubocop::Extractor,
|
34
|
-
semgrep: Engines::Semgrep::Extractor,
|
35
|
-
sorbet: Engines::Sorbet::Extractor,
|
36
38
|
scc: Engines::Scc::Extractor,
|
37
|
-
|
38
|
-
|
39
|
-
|
39
|
+
semgrep: Engines::Semgrep::Extractor,
|
40
|
+
simplecov_json_coverage: Engines::SimpleCovJsonCoverage::Extractor,
|
41
|
+
sorbet: Engines::Sorbet::Extractor
|
40
42
|
}.freeze
|
41
43
|
|
42
44
|
config_provider = ENV['CODEMONITOR_PROVIDER'] || 'console'
|
data/lib/codemonitor/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codemonitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ferran Basora
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dogapi
|
@@ -135,6 +135,7 @@ files:
|
|
135
135
|
- engines/git/extractor.rb
|
136
136
|
- engines/github/extractor.rb
|
137
137
|
- engines/jest-json-summary/extractor.rb
|
138
|
+
- engines/knip/extractor.rb
|
138
139
|
- engines/npm/extractor.rb
|
139
140
|
- engines/packwerk/extractor.rb
|
140
141
|
- engines/rubocop/extractor.rb
|