class Finding

Attributes

control_key[R]

Public Class Methods

new(vuln_data, sonar_api) click to toggle source

@param [SonarQubeApi] sonar_api

# File lib/heimdall_tools/sonarqube_mapper.rb, line 274
def initialize(vuln_data, sonar_api)
  @data = vuln_data
  @api = sonar_api

  @key = @data['key']
  @control_key = @data['rule']
  @project = @data['project']
end

Public Instance Methods

get_result() click to toggle source
# File lib/heimdall_tools/sonarqube_mapper.rb, line 283
def get_result
  vuln_start = @data['textRange']['startLine']
  vuln_end =  @data['textRange']['endLine']
  component = @data['component']
  snip_start = [1, vuln_start - 3].max
  snip_end = vuln_end + 3 # api doesn't care if we request lines past end of file
  snip = @api.query_code_snippet(component, snip_start, snip_end)

  snip_html = "StartLine: #{snip_start}, EndLine: #{snip_end}<br>Code:<pre>#{snip}</pre>"
  {
    status: 'failed',
      code_desc: "Path:#{component}:#{vuln_start}:#{vuln_end} #{snip_html}",
      run_time:  NA_FLOAT,
      start_time: Time.now.strftime('%a,%d %b %Y %X')
  }
end