Sha256: 46daaf914c233b8ece7a10d61bf8d27eedaccdc96efea627faa3473072ede0cd

Contents?: true

Size: 1.47 KB

Versions: 13

Compression:

Stored size: 1.47 KB

Contents

require "json"

module InspecPlugins::JsonMinReporter
  class Reporter < Inspec.plugin(2, :reporter)
    def self.run_data_schema_constraints
      "~> 0.0"
    end

    def render
      output(report.to_json, false)
    end

    def report # rubocop:disable Metrics/AbcSize
      report = {
        controls: [],
        statistics: { duration: run_data.statistics.duration },
        version: run_data.version,
      }

      # collect all test results and add them to the report
      run_data.profiles.each do |profile|
        profile_id = profile.name

        profile.controls.each do |control|
          control_id = control.id

          control.results.each do |result|
            result_for_report = {
              id: control_id,
              profile_id: profile_id,
              profile_sha256: profile.sha256,
              status: result.status,
              code_desc: result.code_desc,
            }

            result_for_report[:skip_message] = result.skip_message if result.non_nil?(:skip_message)
            result_for_report[:resource] = result.resource if result.non_nil?(:resource)
            result_for_report[:message] = result.message if result.non_nil?(:message)
            result_for_report[:exception] = result.exception if result.non_nil?(:exception)
            result_for_report[:backtrace] = result.backtrace if result.non_nil?(:backtrace)

            report[:controls] << result_for_report
          end
        end
      end

      report
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
inspec-core-4.24.8 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.23.15 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.23.11 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.23.10 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.23.4 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.22.22 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.22.8 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.22.1 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.22.0 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.21.3 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.21.1 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.20.10 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
inspec-core-4.20.6 lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb