Class: GraphQL::Doctor::Reporters::Sarif

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/doctor/reporters/sarif.rb

Constant Summary collapse

SCHEMA =
"https://json.schemastore.org/sarif-2.1.0.json"

Instance Method Summary collapse

Constructor Details

#initialize(io:) ⇒ Sarif

Returns a new instance of Sarif.



12
13
14
15
# File 'lib/graphql/doctor/reporters/sarif.rb', line 12

def initialize(io:, **)
  @io = io
  @sources = {}
end

Instance Method Details

#report(diagnostics) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/graphql/doctor/reporters/sarif.rb', line 17

def report(diagnostics)
  @io.puts JSON.pretty_generate(
    "version" => "2.1.0",
    "$schema" => SCHEMA,
    "runs" => [{
      "tool" => {"driver" => driver(diagnostics)},
      "columnKind" => "unicodeCodePoints",
      "results" => diagnostics.map { |diagnostic| result(diagnostic) }
    }]
  )
end