inspec-reporter-json-hdf 1.0.1 → 1.1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6c20b0715afb937bf44526ca1d45e7644c594fd8fe2749baaca84da1efbbcee
4
- data.tar.gz: a1cacadb0ec44285a0f506e876efe175dbe8e074608aaa66296485354a35be61
3
+ metadata.gz: 375c586fb5019a374276cbd7e78369e8297b75db012ade31ca84dbb607eae39c
4
+ data.tar.gz: 5b63861c6c0304e4800f1e98b81c5e4b66c85f3ba0c7fcfdc42732c4c21f322b
5
5
  SHA512:
6
- metadata.gz: 615fbd5bda9c8018b2e01dc6fe7801289b05cc6eb7b0077234f518c9e8f23a52aa738d153dc3bf4d74ecf74a232fd1bf5a6cc692c7dc004513a5ce4ba0f28faa
7
- data.tar.gz: 1bdf1a54c466a3d150522aa5546729e5d0616d68fef645b57e3a01b0ee4f73d5f5e4bf0b5c9d229f7bddb00f256a6dcfe4c8088eb9ebc61a820312701d84206f
6
+ metadata.gz: 37a2979dba233369c491e25404b21a5b1bcc8eae57c772f1125be4f4ac500fe43201334364b9f8f9b0501d1d590a13711e45c840635b8fe9ddba859e5d122675
7
+ data.tar.gz: 16b920add79bf353a0a4113f3af93cf701c449b5cdeabc35e0883e2ae14854c3c3eab83e0a0d82852b84a1742816061f53d3bb90df7a34c9b87ae25744e69910
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.required_ruby_version = '~> 2.5'
19
19
 
20
20
  spec.add_runtime_dependency 'git-lite-version-bump', '~> 0.17', '>= 0.17.3'
21
+ spec.add_runtime_dependency 'roo', '~> 2.8.3'
22
+
21
23
  spec.add_development_dependency 'bundler'
22
24
  spec.add_development_dependency 'bundler-audit'
23
25
  spec.add_development_dependency 'codeclimate-test-reporter'
@@ -1,6 +1,7 @@
1
1
 
2
2
  require 'inspec/plugin/v2'
3
3
  require 'json'
4
+ require 'roo'
4
5
 
5
6
  VALID_FREQUENCY = %w[annually semiannually quarterly monthly every2weeks weekly every3days daily].freeze
6
7
 
@@ -123,7 +124,44 @@ module InspecPlugins::HdfReporter
123
124
 
124
125
  def collect_attestations
125
126
  plugin_config = Inspec::Config.cached.fetch_plugin_config('inspec-reporter-json-hdf')
126
- attestations = plugin_config['attestations'] || []
127
+ attestations = []
128
+ if plugin_config['include-attestations-file']
129
+ if File.exist?(plugin_config['include-attestations-file']['path'])
130
+ if plugin_config['include-attestations-file']['type'].eql?('csv')
131
+ sheet = Roo::Spreadsheet.open(plugin_config['include-attestations-file']['path'], extension: :csv).sheet(0)
132
+
133
+ attestations = sheet.parse(control_id: "Control_ID",
134
+ explanation: "Explanation",
135
+ frequency: "Frequency",
136
+ status: "Status",
137
+ updated: "Updated",
138
+ updated_by: "Updated_By",
139
+ clean:true
140
+ )
141
+ elsif plugin_config['include-attestations-file']['type'].eql?('xlsx')
142
+ sheet = Roo::Spreadsheet.open(plugin_config['include-attestations-file']['path'], extension: :xlsx).sheet(0)
143
+
144
+ attestations = sheet.parse(control_id: "Control_ID",
145
+ explanation: "Explanation",
146
+ frequency: "Frequency",
147
+ status: "Status",
148
+ updated: "Updated",
149
+ updated_by: "Updated_By",
150
+ clean:true
151
+ )
152
+ attestations.map do |h|
153
+ h[:updated] = h[:updated].to_s
154
+ end
155
+ else
156
+ puts 'Warning: Invalid `include-attestations-file` type provided. Supported types: csv, xlsx'
157
+ end
158
+ else
159
+ puts "Warning: Include Attestation File provided '#{plugin_config['include-attestations-file']['path']}' not found."
160
+ end
161
+ end
162
+ attestations.map!{ |x| x.transform_keys(&:to_s) }
163
+ attestations = attestations + (plugin_config['attestations'] || [])
164
+ attestations.reject! { |x| x['status'].eql?("") || x['status'].nil? }
127
165
 
128
166
  if attestations.empty?
129
167
  puts 'Warning: Attestations not provided; HDF will be generated without attestations.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec-reporter-json-hdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rony Xavier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-14 00:00:00.000000000 Z
11
+ date: 2021-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: git-lite-version-bump
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.17.3
33
+ - !ruby/object:Gem::Dependency
34
+ name: roo
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 2.8.3
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 2.8.3
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: bundler
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -183,9 +197,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
197
  version: '2.5'
184
198
  required_rubygems_version: !ruby/object:Gem::Requirement
185
199
  requirements:
186
- - - ">="
200
+ - - ">"
187
201
  - !ruby/object:Gem::Version
188
- version: '0'
202
+ version: 1.3.1
189
203
  requirements: []
190
204
  rubygems_version: 3.2.3
191
205
  signing_key: