vrt-cli 1.0.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aad24468bee3e38354d4ccc922c4a7f079b1fed574fad80285961c74eefdddc4
4
- data.tar.gz: db833edaa9b75f43a733d59e6c799e238dc5e63b972d2dc64b82337d431169ae
3
+ metadata.gz: 12ffc1ef26c84c00647cf656c0d87fcc65e18d2cc5deb058e42b4039bab12456
4
+ data.tar.gz: 60db69ef74bc34439db4c92a3913427fa53c4fdf757a10e7d9c8d103e369931d
5
5
  SHA512:
6
- metadata.gz: 328a59429468c3d5873dbeb4c187b91b99fcdfbbec78f3b5b9aea24e8cfbfb9dad9f9ef9b2578baab87ce246283c285bded72f510d4afc2fe95445133826aa13
7
- data.tar.gz: a55c0f06a8c7bcb2a5e07dd695b90116eb3e9f4bfeb0b7fc53b759970f7f208d6fa6eab4ca6cf041f8b3339bc59f2a93bc68e2e87c71e289fe038da115bd48ff
6
+ metadata.gz: 43c0b56eecd7c0222ac982b15863a9e9b6849326b4b83515c8583fb7908c4b07fbedd73a0d1be052c3177845037c7aba47a570f43dd578fbec21ceb544df0e2d
7
+ data.tar.gz: e36895910e151e1229e9d66385d131e6044ecf73edd0cd6c75d42021b4110fbfb5875f531b188f334e768b7fb7486fc99c81c07dadcd46935ebd5bc07204a464
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Alexandre ZANNI
3
+ Copyright (c) 2021-2026 Alexandre ZANNI
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/bin/vrt-cli CHANGED
@@ -2,7 +2,6 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Ruby internal
5
- require 'pp'
6
5
  # Project internal
7
6
  require 'vrt_cli'
8
7
  # External
@@ -31,7 +30,7 @@ DOCOPT
31
30
  begin
32
31
  args = Docopt.docopt(doc, version: VrtCli::VERSION)
33
32
  Paint.mode = 0 if args['--no-color']
34
- pp args if args['--debug']
33
+ puts args if args['--debug']
35
34
  vc = VrtCli::App.new
36
35
  if args['tree']
37
36
  vc.display_tree
@@ -8,9 +8,9 @@ module VrtCli
8
8
  class App
9
9
  # Display vulnerabilities in a tree
10
10
  def display_tree
11
- VRT.get_map.structure.each do |_cat_id, category|
11
+ VRT.get_map.structure.each_value do |category|
12
12
  puts Paint[category.name, :bold]
13
- category.children.each do |_subcat_id, subcategory|
13
+ category.children.each_value do |subcategory|
14
14
  if subcategory.priority
15
15
  print ''.ljust(4) + Paint[subcategory.priority, SEVERITY[subcategory.priority]]
16
16
  puts " #{subcategory.name}"
@@ -20,7 +20,7 @@ module VrtCli
20
20
 
21
21
  next unless subcategory.children?
22
22
 
23
- subcategory.children.each do |_variant_id, variant|
23
+ subcategory.children.each_value do |variant|
24
24
  if variant.priority
25
25
  print ''.ljust(8) + Paint[variant.priority, SEVERITY[variant.priority]]
26
26
  puts " #{variant.name}"
@@ -30,32 +30,33 @@ module VrtCli
30
30
  end
31
31
  end
32
32
  end
33
- true
33
+ nil
34
34
  end
35
35
 
36
36
  # Sort vulnerabilities
37
- # @param sortby [Symbol] Column to sort by (+:priority+, +:category+, +:subcategory+, +:variant+)
38
- # @param order [Symbol] Displayed in ascendant (+:asc+) order or descendant order (+:dsc+). Works with +sortby+.
37
+ # @param sortby [Symbol] Column to sort by (`:priority`, `:category`, `:subcategory`, `:variant`)
38
+ # @param order [Symbol] Displayed in ascendant (`:asc`) order or descendant order (`:dsc`). Works with `sortby`.
39
39
  def sort(sortby = :priority, order = :asc)
40
40
  unless sortby.nil? || sortby == :nil
41
41
  @vulnerabilities.sort! { |a, b| a[sortby].to_s <=> b[sortby].to_s }
42
42
  @vulnerabilities.reverse! if order == :dsc
43
43
  end
44
- true
44
+ nil
45
45
  end
46
46
 
47
47
  # Display vulnerabilities in a simple justified table
48
- # First column: Technical severity / Priority (+:priority+)
49
- # Second column: Category (+:category+)
50
- # Third column: Sub-category / Specific vulnerability (+:subcategory+)
51
- # Fourth column: Vulnerability / Variant / Affected function (+:variant+)
48
+ #
49
+ # - First column: Technical severity / Priority (`:priority`)
50
+ # - Second column: Category (`:category`)
51
+ # - Third column: Sub-category / Specific vulnerability (`:subcategory`)
52
+ # - Fourth column: Vulnerability / Variant / Affected function (`:variant`)
52
53
  def display_table
53
54
  @vulnerabilities.each do |v|
54
55
  output = "#{Paint[v[:priority].to_s, SEVERITY[v[:priority]]]} #{Paint[v[:category].ljust(44), :bold]} "
55
56
  output += "#{v[:subcategory].ljust(55)} #{v[:variant]}"
56
57
  puts output
57
58
  end
58
- true
59
+ nil
59
60
  end
60
61
  end
61
62
  end
data/lib/vrt_cli/parse.rb CHANGED
@@ -5,13 +5,13 @@ require 'vrt'
5
5
  module VrtCli
6
6
  # The application
7
7
  class App
8
- # @return [Array<Hash>] An array of vulnerabilities (+:priority+, +:category+, +:subcategory+, +:variant+)
8
+ # @return [Array<Hash>] An array of vulnerabilities (`:priority`, `:category`, `:subcategory`, `:variant`)
9
9
  def parse
10
10
  vulns = []
11
- VRT.get_map.structure.each do |_cat_id, category|
12
- category.children.each do |_subcat_id, subcategory|
11
+ VRT.get_map.structure.each_value do |category|
12
+ category.children.each_value do |subcategory|
13
13
  if subcategory.children?
14
- subcategory.children.each do |_variant_id, variant|
14
+ subcategory.children.each_value do |variant|
15
15
  priority = variant.priority || '?'
16
16
  vuln = {
17
17
  priority: priority,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Version
4
- VERSION = '1.0.0'
4
+ VERSION = '1.2.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vrt-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre ZANNI
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-04-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: docopt
@@ -30,146 +29,28 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '2.2'
32
+ version: '2.3'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '2.2'
39
+ version: '2.3'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: vrt
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '0.11'
46
+ version: '0.13'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '0.11'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 2.1.0
62
- - - "<"
63
- - !ruby/object:Gem::Version
64
- version: '2.3'
65
- type: :development
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 2.1.0
72
- - - "<"
73
- - !ruby/object:Gem::Version
74
- version: '2.3'
75
- - !ruby/object:Gem::Dependency
76
- name: commonmarker
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '0.21'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '0.21'
89
- - !ruby/object:Gem::Dependency
90
- name: github-markup
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '3.0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '3.0'
103
- - !ruby/object:Gem::Dependency
104
- name: minitest
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '5.12'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '5.12'
117
- - !ruby/object:Gem::Dependency
118
- name: rake
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '13.0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '13.0'
131
- - !ruby/object:Gem::Dependency
132
- name: redcarpet
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '3.5'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '3.5'
145
- - !ruby/object:Gem::Dependency
146
- name: rubocop
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '1.12'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '1.12'
159
- - !ruby/object:Gem::Dependency
160
- name: yard
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '0.9'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: '0.9'
53
+ version: '0.13'
173
54
  description: A simple tool to visualize VRT (Vulnerability Rating Taxonomy) from the
174
55
  CLI.
175
56
  email: alexandre.zanni@engineer.com
@@ -196,7 +77,8 @@ metadata:
196
77
  documentation_uri: https://noraj.github.io/vrt-cli/
197
78
  homepage_uri: https://noraj.github.io/vrt-cli/
198
79
  source_code_uri: https://github.com/noraj/vrt-cli/
199
- post_install_message:
80
+ funding_uri: https://github.com/sponsors/noraj
81
+ rubygems_mfa_required: 'true'
200
82
  rdoc_options: []
201
83
  require_paths:
202
84
  - lib
@@ -204,18 +86,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
86
  requirements:
205
87
  - - ">="
206
88
  - !ruby/object:Gem::Version
207
- version: 2.6.0
89
+ version: 3.2.0
208
90
  - - "<"
209
91
  - !ruby/object:Gem::Version
210
- version: '3.0'
92
+ version: '5.0'
211
93
  required_rubygems_version: !ruby/object:Gem::Requirement
212
94
  requirements:
213
95
  - - ">="
214
96
  - !ruby/object:Gem::Version
215
97
  version: '0'
216
98
  requirements: []
217
- rubygems_version: 3.1.6
218
- signing_key:
99
+ rubygems_version: 4.0.3
219
100
  specification_version: 4
220
101
  summary: A simple tool to visualize VRT (Vulnerability Rating Taxonomy) from the CLI.
221
102
  test_files: []