From b9bf35120dbb329d4be24491a8d71dd4d9c6a6fb Mon Sep 17 00:00:00 2001 From: Lukas Koenen <lukas.koenen@h-da.de> Date: Fri, 8 Sep 2023 09:52:03 +0200 Subject: [PATCH] refactor: report info --- .../report_builders/html_report_builder.py | 40 +++++++++++-------- run.sh | 6 +-- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/contrib/report_builders/html_report_builder.py b/contrib/report_builders/html_report_builder.py index f3d2f38..8b41679 100644 --- a/contrib/report_builders/html_report_builder.py +++ b/contrib/report_builders/html_report_builder.py @@ -8,26 +8,28 @@ from contrib.descriptions import VulnDescriptionProvider from contrib.report_builders import JsonReportBuilder -class Severity: - def __init__(self, severity): - self.level = severity - self.num_level = 0 +class ReportInfo: + def __init__(self, severity='SeverityNone', is_empty=False): + self.severity = severity + self.num_severity = 0 - if severity == 'Low': - self.num_level = 1 + self.empty = is_empty - if severity == 'Medium': - self.num_level = 2 + if severity == 'SeverityLow': + self.num_severity = 1 - if severity == 'High': - self.num_level = 3 + if severity == 'SeverityMedium': + self.num_severity = 2 + + if severity == 'SeverityHigh': + self.num_severity = 3 def toJSON(self): return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4) def __lt__(self, other): - return self.num_level < other.num_level + return self.num_severity < other.num_severity class JinjaHtmlReportBuilder(JsonReportBuilder): @@ -40,16 +42,20 @@ class JinjaHtmlReportBuilder(JsonReportBuilder): def build(self) -> Any: json_data = self._buffer - max_severity = Severity('Empty') + report_info = ReportInfo() + + if len(json_data['ips']) == 0: + report_info.empty = True + for vv in json_data['vulnerable'].values(): for v in vv['vulnerabilities']: - s = Severity(v['severity_str']) + r = ReportInfo(f'Severity{v["severity_str"]}') - if s > max_severity: - max_severity = s + if r > report_info: + report_info = r - with open(f'{json_data["output_path"]}.severity', 'w+') as severity: - severity.write(max_severity.toJSON()) + with open(f'{json_data["output_path"]}.info', 'w+') as info: + info.write(report_info.toJSON()) return self._template.render(data=json_data) diff --git a/run.sh b/run.sh index db943d0..6cd2b03 100755 --- a/run.sh +++ b/run.sh @@ -20,7 +20,7 @@ xml_subdir=$xml_dir/$current_time report_subdir=$report_dir/$current_time report_file=report_$current_time.$report_extension -severity_file=report_$current_time.severity +info_file=report_$current_time.info if [[ ! -z $project ]] then @@ -28,7 +28,7 @@ then report_subdir=$report_dir/$project/$current_time report_file=report_$project\_$current_time.$report_extension - severity_file=report_$project\_$current_time.severity + info_file=report_$project\_$current_time.info fi function upload { @@ -87,4 +87,4 @@ then sed -i 's/%/\\%/g' $root_dir/$report_dir/$report_file fi upload $report_subdir/$report_file -upload $report_subdir/$severity_file +upload $report_subdir/$info_file -- GitLab