MCPcopy Create free account
hub / github.com/aboutcode-org/vulnerablecode / AdvisoryData

Class AdvisoryData

vulnerabilities/importer.py:602–648  ·  view source on GitHub ↗

This data class expresses the contract between data sources and the import runner.

Source from the content-addressed store, hash-verified

600
601@dataclasses.dataclass(order=True)
602class AdvisoryData:
603 """
604 This data class expresses the contract between data sources and the import runner.
605 """
606
607 aliases: List[str] = dataclasses.field(default_factory=list)
608 summary: Optional[str] = ""
609 affected_packages: List[AffectedPackage] = dataclasses.field(default_factory=list)
610 references: List[Reference] = dataclasses.field(default_factory=list)
611 date_published: Optional[datetime.datetime] = None
612 weaknesses: List[int] = dataclasses.field(default_factory=list)
613 url: Optional[str] = None
614
615 def __post_init__(self):
616 if self.summary:
617 self.summary = clean_summary(self.summary)
618
619 def to_dict(self):
620 return {
621 "aliases": self.aliases,
622 "summary": self.summary,
623 "affected_packages": [pkg.to_dict() for pkg in self.affected_packages],
624 "references": [ref.to_dict() for ref in self.references],
625 "date_published": self.date_published.isoformat() if self.date_published else None,
626 "weaknesses": self.weaknesses,
627 "url": self.url if self.url else "",
628 }
629
630 @classmethod
631 def from_dict(cls, advisory_data):
632 date_published = advisory_data["date_published"]
633 transformed = {
634 "aliases": advisory_data["aliases"],
635 "summary": advisory_data["summary"],
636 "affected_packages": [
637 AffectedPackage.from_dict(pkg)
638 for pkg in advisory_data["affected_packages"]
639 if pkg is not None
640 ],
641 "references": [Reference.from_dict(ref) for ref in advisory_data["references"]],
642 "date_published": (
643 datetime.datetime.fromisoformat(date_published) if date_published else None
644 ),
645 "weaknesses": advisory_data["weaknesses"],
646 "url": advisory_data.get("url") or None,
647 }
648 return cls(**transformed)
649
650
651@dataclasses.dataclass(order=True)

Callers 15

to_advisory_dataMethod · 0.90
to_advisory_dataFunction · 0.90
process_responseFunction · 0.90
parse_gitlab_advisoryFunction · 0.90
to_advisoryMethod · 0.90
to_advisory_dataMethod · 0.90
load_advisoriesFunction · 0.90
parse_advisory_dataFunction · 0.90
to_advisoryMethod · 0.90
to_advisoriesFunction · 0.90
process_fileMethod · 0.90
parse_advisory_dataFunction · 0.90

Calls

no outgoing calls