1414
1515import dateparser
1616from packageurl import PackageURL
17- from univers .version_range import PypiVersionRange
17+ from univers .version_range import RANGE_CLASS_BY_SCHEMES
1818from univers .versions import InvalidVersion
1919from univers .versions import PypiVersion
2020from univers .versions import SemverVersion
3131logger = logging .getLogger (__name__ )
3232
3333
34- def parse_advisory_data (raw_data : dict ) -> Optional [AdvisoryData ]:
34+ def parse_advisory_data (raw_data : dict , supported_ecosystem ) -> Optional [AdvisoryData ]:
3535 raw_id = raw_data .get ("id" ) or ""
3636 summary = raw_data .get ("summary" ) or ""
3737 details = raw_data .get ("details" ) or ""
@@ -56,11 +56,11 @@ def parse_advisory_data(raw_data: dict) -> Optional[AdvisoryData]:
5656
5757 for affected_pkg in raw_data .get ("affected" ) or []:
5858 purl = get_affected_purl (affected_pkg , raw_id )
59- if purl .type != "pypi" :
60- logger .error (f"Non PyPI package found in PYSEC advisories: { purl } - from: { raw_id !r} " )
59+ if purl .type != supported_ecosystem :
60+ logger .error (f"un supported ecosystem package found in the advisories: { purl } - from: { raw_id !r} " )
6161 continue
6262
63- affected_version_range = get_affected_version_range (affected_pkg , raw_id )
63+ affected_version_range = get_affected_version_range (affected_pkg , raw_id , supported_ecosystem )
6464 for fixed_range in affected_pkg .get ("ranges" , []):
6565 fixed_version = get_fixed_version (fixed_range , raw_id )
6666
@@ -149,11 +149,11 @@ def get_affected_purl(affected_pkg, raw_id):
149149 logger .error (f"purl affected_pkg not found - { raw_id !r} " )
150150
151151
152- def get_affected_version_range (affected_pkg , raw_id ):
152+ def get_affected_version_range (affected_pkg , raw_id , supported_ecosystem ):
153153 affected_versions = affected_pkg .get ("versions" )
154154 if affected_versions :
155155 try :
156- return PypiVersionRange .from_versions (affected_versions )
156+ return RANGE_CLASS_BY_SCHEMES [ supported_ecosystem ] .from_versions (affected_versions )
157157 except Exception as e :
158158 logger .error (
159159 f"InvalidVersionRange affected_pkg_version_range Error - { raw_id !r} { e !r} "
0 commit comments