in dusty/reporters/reportportal/reporter.py [0:0]
def report(self):
""" Report """
if not self._rp_client:
log.warning("ReportPortal configuration/connection is invalid. Skipping RP reporting")
return
log.info("Reporting to ReportPortal")
for item in self.context.findings:
if item.get_meta("information_finding", False) or \
item.get_meta("false_positive_finding", False) or \
item.get_meta("excluded_finding", False):
continue
if isinstance(item, DastFinding):
item_details = markdown.markdown_unescape(item.description)
item_description = item_details
tags = [
f'Tool: {item.get_meta("tool", "")}',
f'TestType: {self.context.get_meta("testing_type", "DAST")}',
f'Severity: {item.get_meta("severity", SEVERITIES[-1])}'
]
if item.get_meta("confidence", None):
tags.append(f'Confidence: {item.get_meta("confidence")}')
self._rp_client.start_test_item(
item.title,
description=item_description,
tags=tags
)
if item.get_meta("legacy.images", None):
for attachment in item.get_meta("legacy.images"):
self._rp_client.test_item_message(attachment["name"], "INFO", attachment)
self._rp_client.test_item_message("!!!MARKDOWN_MODE!!! %s " % item_details, "INFO")
self._rp_client.test_item_message(item.get_meta("issue_hash", "<no_hash>"), "ERROR")
self._rp_client.finish_test_item()
elif isinstance(item, SastFinding):
item_details = markdown.markdown_unescape("\n\n".join(item.description))
item_description = item_details
tags = [
f'Tool: {item.get_meta("tool", "")}',
f'TestType: {self.context.get_meta("testing_type", "SAST")}',
f'Severity: {item.get_meta("severity", SEVERITIES[-1])}'
]
if item.get_meta("confidence", None):
tags.append(f'Confidence: {item.get_meta("confidence")}')
self._rp_client.start_test_item(
item.title,
description=item_description,
tags=tags
)
self._rp_client.test_item_message("!!!MARKDOWN_MODE!!! %s " % item_details, "INFO")
self._rp_client.test_item_message(item.get_meta("issue_hash", "<no_hash>"), "ERROR")
self._rp_client.finish_test_item()
else:
log.warning("Unsupported finding type")
continue # raise ValueError("Unsupported item type")
self._rp_client.finish_test()