Skip to content

Commit

Permalink
Bug fix for SARIF file creation
Browse files Browse the repository at this point in the history
  • Loading branch information
lylebarner committed Feb 10, 2025
1 parent 9af60d2 commit ff4f386
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions scrub/tools/parsers/translate_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,14 +376,15 @@ def parse_sarif(sarif_filename, source_root):
return results


def create_sarif_output_file(results_list, sarif_version, output_file, source_root):
def create_sarif_output_file(results_list, sarif_version, output_file, source_root, tool_name):
"""This function creates a SARIF formatted output file.
Inputs:
- results_list: List of dictionaries representing each warning [list of dicts]
- sarif_version:
- output_file:
- source_root: Absolute path of source root directory [string]
- tool_name: Name of scanning tool [string]
Returns:
- output_file is created at the specified location
Expand All @@ -397,6 +398,12 @@ def create_sarif_output_file(results_list, sarif_version, output_file, source_ro
'$schema': 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json',
'runs': [
{
'tool': {
'driver': {
'name': tool_name
},
'rules': []
},
'results': []
}
]
Expand Down Expand Up @@ -455,13 +462,7 @@ def create_sarif_output_file(results_list, sarif_version, output_file, source_ro
'text': rule
}
})

sarif_output['runs'][0]['tool'] = {
'driver': {
'name': results_list[0]['tool'],
'rules': sarif_rules
}
}
sarif_output['runs'][0]['tool']['rules'] = sarif_rules
result_item['locations'] = [{
'physicalLocation': {
'artifactLocation': {
Expand Down Expand Up @@ -540,6 +541,7 @@ def perform_translation(input_file, output_file, source_root, output_format):
# Initialize the variables
exit_code = 1
parsed_results = []
tool_name = input_file.stem

try:
# Parse the input file
Expand All @@ -562,7 +564,7 @@ def perform_translation(input_file, output_file, source_root, output_format):
sarif_version = output_format.strip('sarifv')

# Generate the output file
create_sarif_output_file(parsed_results, sarif_version, output_file, source_root)
create_sarif_output_file(parsed_results, sarif_version, output_file, source_root, tool_name)

else:
# TODO: This should generate an exception
Expand Down

0 comments on commit ff4f386

Please sign in to comment.