Skip to content

Commit 80e87e1

Browse files
author
Michael Long
committed
rework zero vuln report
1 parent 670b6c5 commit 80e87e1

File tree

3 files changed

+30
-39
lines changed

3 files changed

+30
-39
lines changed

entrypoint/entrypoint/orchestrator.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def post_dockerfile_step_summary(args, total_vulns):
6060
with open(args.out_dockerfile_scan_md, "r") as f:
6161
dockerfile_markdown = f.read()
6262
except Exception as e:
63-
logging.debug(e) # can be spammy, so set as debug log
63+
logging.debug(e) # can be spammy, so set as debug log
6464
return
6565

6666
if not dockerfile_markdown:
@@ -379,10 +379,6 @@ def write_pkg_vuln_report_csv(args, criticals, highs, mediums, lows, others):
379379

380380

381381
def write_pkg_vuln_report_markdown(args, total_vulns, criticals, highs, mediums, lows, others):
382-
if int(total_vulns) == 0:
383-
logging.info(f"skipping package vulnerability markdown report because no vulnerabilities were detected")
384-
return None
385-
386382
with open(args.out_scan, "r") as f:
387383
inspector_scan = json.load(f)
388384
vulns = pkg_vuln.vulns_to_obj(inspector_scan)

entrypoint/entrypoint/pkg_vuln.py

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -339,16 +339,16 @@ def to_markdown(vulns,
339339
markdown += f"| Other | {others}|\n"
340340
markdown += "\n\n"
341341

342+
if not vulns:
343+
markdown += ":green_circle: Your resource was scanned with Amazon Inspector and no vulnerabilities were detected."
344+
markdown += "\n\n"
345+
return markdown
346+
342347
# create vulnerability details table
343348
markdown += "## Vulnerability Findings\n\n"
344-
345349
markdown += "| ID | Severity | [CVSS](https://www.first.org/cvss/) | Installed Package ([PURL](https://github.com/package-url/purl-spec/tree/master?tab=readme-ov-file#purl)) | Fixed Package | Path | [EPSS](https://www.first.org/epss/) | Exploit Available | Exploit Last Seen | CWEs |\n"
346350
markdown += "|----------|-------|-------|-------|-------|-------|-------|-------|-------|-------|\n"
347351

348-
if not vulns:
349-
markdown += "\n\n"
350-
return markdown
351-
352352
# sort vulns by CVSS score
353353
vulns = sort_vulns(vulns)
354354

@@ -421,10 +421,7 @@ def sort_vulns(vulns):
421421
return sorted_vulns
422422

423423

424-
def post_github_step_summary(markdown=None):
425-
if markdown is None:
426-
markdown = get_zero_vuln_summary_table()
427-
424+
def post_github_step_summary(markdown):
428425
job_summary_file = "/tmp/inspector.md"
429426
if os.getenv('GITHUB_ACTIONS'):
430427
job_summary_file = os.environ["GITHUB_STEP_SUMMARY"]
@@ -456,13 +453,3 @@ def get_pkg_vulns(inspector_scan_vulns: dict):
456453
pkg_vulns.append(vuln)
457454

458455
return pkg_vulns
459-
460-
461-
def get_zero_vuln_summary_table() -> str:
462-
markdown = "## Vulnerability Counts by Severity\n\n"
463-
markdown += "| Severity | Count |\n"
464-
markdown += "|----------|-------|\n"
465-
for severity in ["Critical", "High", "Medium", "Low", "Other"]:
466-
markdown += f"| {severity} | 0 |\n"
467-
markdown += "\n\n"
468-
return markdown

entrypoint/tests/test_pkg_vuln.py

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,29 @@ def test_vulns_to_obj(self):
4040

4141
def test_post_github_step_summary_no_vulns(self):
4242

43-
dst_markdown_with_zero_vulns = "/tmp/inspector.md"
44-
cleanup_stale_markdown_report(dst_markdown_with_zero_vulns)
45-
46-
markdown_with_zero_vulns = None
47-
pkg_vuln.post_github_step_summary(markdown_with_zero_vulns)
48-
49-
expected = pkg_vuln.get_zero_vuln_summary_table()
50-
received = ""
51-
52-
with open(dst_markdown_with_zero_vulns, "r") as f:
53-
received = f.read()
54-
55-
self.assertEqual(expected, received)
56-
57-
cleanup_stale_markdown_report(dst_markdown_with_zero_vulns)
43+
markdown_dst_path = "/tmp/inspector.md"
44+
cleanup_stale_markdown_report(markdown_dst_path)
45+
46+
zero_vuln_summary_md = pkg_vuln.to_markdown(vulns=None,
47+
artifact_name="test_image:latest",
48+
artifact_type="container",
49+
artifact_hash="null",
50+
build_id="null",
51+
criticals="0",
52+
highs="0",
53+
mediums="0",
54+
lows="0",
55+
others="0")
56+
57+
expected_list = ["| Critical | 0|",
58+
"| High | 0|",
59+
"| Medium | 0|",
60+
"| Low | 0|",
61+
"| Other | 0|",
62+
]
63+
for expected in expected_list:
64+
self.assertIn(expected, zero_vuln_summary_md)
65+
cleanup_stale_markdown_report(markdown_dst_path)
5866

5967

6068
def get_scan_body(test_file):

0 commit comments

Comments
 (0)