@@ -139,21 +139,21 @@ def parse_advisory_data_v2(
139139 for affected_pkg in raw_data .get ("affected" ) or []:
140140 purl = get_affected_purl (affected_pkg = affected_pkg , raw_id = advisory_id )
141141
142- if not purl or purl .type not in supported_ecosystems :
143- logger .error (f"Unsupported package type: { affected_pkg !r} in OSV: { advisory_id !r} " )
144- continue
145-
146- affected_version_range = get_affected_version_range (
147- affected_pkg = affected_pkg ,
148- raw_id = advisory_id ,
149- supported_ecosystem = purl .type ,
150- )
142+ affected_version_range = None
143+ if purl and purl .type not in supported_ecosystems :
144+ affected_version_range = get_affected_version_range (
145+ affected_pkg = affected_pkg ,
146+ raw_id = advisory_id ,
147+ supported_ecosystem = purl .type ,
148+ )
151149
152150 fixed_versions = []
153151 fixed_version_range = None
154152 for fixed_range in affected_pkg .get ("ranges" ) or []:
155153 fixed_version , (introduced_commits , fixed_commits ) = get_fixed_versions_and_commits (
156- ranges = fixed_range , raw_id = advisory_id , supported_ecosystem = purl .type
154+ ranges = fixed_range ,
155+ raw_id = advisory_id ,
156+ supported_ecosystem = purl .type if purl else None ,
157157 )
158158 fixed_versions .extend ([v .string for v in fixed_version ])
159159
@@ -164,6 +164,10 @@ def parse_advisory_data_v2(
164164 get_fixed_version_range (fixed_versions , purl .type ) if fixed_versions else None
165165 )
166166
167+ if not purl or purl .type not in supported_ecosystems :
168+ logger .error (f"Unsupported package type: { purl !r} in OSV: { advisory_id !r} " )
169+ continue
170+
167171 if fixed_version_range or affected_version_range :
168172 affected_packages .append (
169173 AffectedPackageV2 (
@@ -354,7 +358,7 @@ def get_affected_version_range(affected_pkg, raw_id, supported_ecosystem):
354358 return RANGE_CLASS_BY_SCHEMES [supported_ecosystem ].from_versions (affected_versions )
355359 except Exception as e :
356360 logger .error (
357- f"Invalid VersionRange for affected_pkg: { affected_pkg } "
361+ f"Invalid VersionRange for affected_pkg: { affected_versions } "
358362 f"for OSV id: { raw_id !r} : error:{ e !r} "
359363 )
360364
@@ -397,7 +401,7 @@ def get_fixed_versions_and_commits(
397401 version_class = version_range_class .version_class if version_range_class else None
398402
399403 for introduced , fixed in extract_introduced_and_fixed (ranges ):
400- if fixed_range_type == "ECOSYSTEM" and fixed :
404+ if fixed_range_type == "ECOSYSTEM" and fixed and supported_ecosystem :
401405 try :
402406 if not version_class :
403407 raise InvalidVersion (
@@ -409,7 +413,7 @@ def get_fixed_versions_and_commits(
409413 f"Invalid version class: { version_class } - { fixed !r} for OSV id: { raw_id !r} "
410414 )
411415
412- elif fixed_range_type == "SEMVER" and fixed :
416+ elif fixed_range_type == "SEMVER" and fixed and supported_ecosystem :
413417 try :
414418 fixed_versions .append (SemverVersion (fixed ))
415419 except InvalidVersion :
0 commit comments