@@ -138,21 +138,21 @@ def parse_advisory_data_v2(
138138 for affected_pkg in raw_data .get ("affected" ) or []:
139139 purl = get_affected_purl (affected_pkg = affected_pkg , raw_id = advisory_id )
140140
141- if not purl or purl .type not in supported_ecosystems :
142- logger .error (f"Unsupported package type: { affected_pkg !r} in OSV: { advisory_id !r} " )
143- continue
144-
145- affected_version_range = get_affected_version_range (
146- affected_pkg = affected_pkg ,
147- raw_id = advisory_id ,
148- supported_ecosystem = purl .type ,
149- )
141+ affected_version_range = None
142+ if purl and purl .type not in supported_ecosystems :
143+ affected_version_range = get_affected_version_range (
144+ affected_pkg = affected_pkg ,
145+ raw_id = advisory_id ,
146+ supported_ecosystem = purl .type ,
147+ )
150148
151149 fixed_versions = []
152150 fixed_version_range = None
153151 for fixed_range in affected_pkg .get ("ranges" ) or []:
154152 fixed_version , (introduced_commits , fixed_commits ) = get_fixed_versions_and_commits (
155- ranges = fixed_range , raw_id = advisory_id , supported_ecosystem = purl .type
153+ ranges = fixed_range ,
154+ raw_id = advisory_id ,
155+ supported_ecosystem = purl .type if purl else None ,
156156 )
157157 fixed_versions .extend ([v .string for v in fixed_version ])
158158
@@ -163,6 +163,10 @@ def parse_advisory_data_v2(
163163 get_fixed_version_range (fixed_versions , purl .type ) if fixed_versions else None
164164 )
165165
166+ if not purl or purl .type not in supported_ecosystems :
167+ logger .error (f"Unsupported package type: { purl !r} in OSV: { advisory_id !r} " )
168+ continue
169+
166170 if fixed_version_range or affected_version_range :
167171 affected_packages .append (
168172 AffectedPackageV2 (
@@ -348,7 +352,7 @@ def get_affected_version_range(affected_pkg, raw_id, supported_ecosystem):
348352 return RANGE_CLASS_BY_SCHEMES [supported_ecosystem ].from_versions (affected_versions )
349353 except Exception as e :
350354 logger .error (
351- f"Invalid VersionRange for affected_pkg: { affected_pkg } "
355+ f"Invalid VersionRange for affected_pkg: { affected_versions } "
352356 f"for OSV id: { raw_id !r} : error:{ e !r} "
353357 )
354358
@@ -391,7 +395,7 @@ def get_fixed_versions_and_commits(
391395 version_class = version_range_class .version_class if version_range_class else None
392396
393397 for introduced , fixed in extract_introduced_and_fixed (ranges ):
394- if fixed_range_type == "ECOSYSTEM" and fixed :
398+ if fixed_range_type == "ECOSYSTEM" and fixed and supported_ecosystem :
395399 try :
396400 if not version_class :
397401 raise InvalidVersion (
@@ -403,7 +407,7 @@ def get_fixed_versions_and_commits(
403407 f"Invalid version class: { version_class } - { fixed !r} for OSV id: { raw_id !r} "
404408 )
405409
406- elif fixed_range_type == "SEMVER" and fixed :
410+ elif fixed_range_type == "SEMVER" and fixed and supported_ecosystem :
407411 try :
408412 fixed_versions .append (SemverVersion (fixed ))
409413 except InvalidVersion :
0 commit comments