From d829cdfedcaba7ee4334d53556aff55474f78866 Mon Sep 17 00:00:00 2001 From: Andrei Serebriakov Date: Tue, 30 Jan 2024 16:46:24 +0300 Subject: [PATCH 1/3] fix for sarif parser with codeql rules --- dojo/tools/sarif/parser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dojo/tools/sarif/parser.py b/dojo/tools/sarif/parser.py index 14d81849570..266d1e6e4e1 100644 --- a/dojo/tools/sarif/parser.py +++ b/dojo/tools/sarif/parser.py @@ -77,7 +77,10 @@ def __get_last_invocation_date(self, data): def get_rules(run): rules = {} - for item in run["tool"]["driver"].get("rules", []): + rules_array = run["tool"]["driver"].get("rules", []) + if len(rules_array) == 0: + rules_array = run["tool"]["extensions"][0].get("rules", []) + for item in rules_array: rules[item["id"]] = item return rules From 769fe3a82070289d48e0bdbc03622bb7b27d0d07 Mon Sep 17 00:00:00 2001 From: Andrei Serebriakov Date: Tue, 30 Jan 2024 17:25:33 +0300 Subject: [PATCH 2/3] add check for extensions property --- dojo/tools/sarif/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dojo/tools/sarif/parser.py b/dojo/tools/sarif/parser.py index 266d1e6e4e1..b1233fb67a5 100644 --- a/dojo/tools/sarif/parser.py +++ b/dojo/tools/sarif/parser.py @@ -78,7 +78,7 @@ def __get_last_invocation_date(self, data): def get_rules(run): rules = {} rules_array = run["tool"]["driver"].get("rules", []) - if len(rules_array) == 0: + if len(rules_array) == 0 and run["tool"].get("extensions") != None: rules_array = run["tool"]["extensions"][0].get("rules", []) for item in rules_array: rules[item["id"]] = item From cfb6ae0a75ba77b18f774ce7c294b32d240e1a37 Mon Sep 17 00:00:00 2001 From: Andrei Serebriakov Date: Tue, 30 Jan 2024 17:28:08 +0300 Subject: [PATCH 3/3] flake8 comparsion --- dojo/tools/sarif/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dojo/tools/sarif/parser.py b/dojo/tools/sarif/parser.py index b1233fb67a5..e7963612b44 100644 --- a/dojo/tools/sarif/parser.py +++ b/dojo/tools/sarif/parser.py @@ -78,7 +78,7 @@ def __get_last_invocation_date(self, data): def get_rules(run): rules = {} rules_array = run["tool"]["driver"].get("rules", []) - if len(rules_array) == 0 and run["tool"].get("extensions") != None: + if len(rules_array) == 0 and run["tool"].get("extensions") is not None: rules_array = run["tool"]["extensions"][0].get("rules", []) for item in rules_array: rules[item["id"]] = item