This commit is contained in:
Iliyan Angelov
2025-12-01 06:50:10 +02:00
parent 91f51bc6fe
commit 62c1fe5951
4682 changed files with 544807 additions and 31208 deletions

View File

@@ -0,0 +1,58 @@
import logging
from typing import List, Dict, Tuple, Optional
from safety.formatter import FormatterAPI
from safety.formatters.json import build_json_report
from safety.output_utils import get_report_brief_info, parse_html
from safety.util import get_basic_announcements
LOG = logging.getLogger(__name__)
class HTMLReport(FormatterAPI):
"""
HTML report formatter for when the output is input for something else.
"""
def render_vulnerabilities(self, announcements: List[Dict], vulnerabilities: List[Dict], remediations: Dict,
full: bool, packages: List[Dict], fixes: Tuple = ()) -> Optional[str]:
"""
Renders vulnerabilities in HTML format.
Args:
announcements (List[Dict]): List of announcements.
vulnerabilities (List[Dict]): List of vulnerabilities.
remediations (Dict): Remediation data.
full (bool): Flag indicating full output.
packages (List[Dict]): List of packages.
fixes (Tuple, optional): Tuple of fixes.
Returns:
str: Rendered HTML vulnerabilities report.
"""
LOG.debug(
f'HTML Output, Rendering {len(vulnerabilities)} vulnerabilities, {len(remediations)} package '
f'remediations with full_report: {full}')
report = build_json_report(announcements, vulnerabilities, remediations, packages)
return parse_html(kwargs={"json_data": report})
def render_licenses(self, announcements: List[Dict], licenses: List[Dict]) -> None:
"""
Renders licenses in HTML format.
Args:
announcements (List[Dict]): List of announcements.
licenses (List[Dict]): List of licenses.
"""
pass
def render_announcements(self, announcements: List[Dict]) -> None:
"""
Renders announcements in HTML format.
Args:
announcements (List[Dict]): List of announcements.
"""
pass