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

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: 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: