Skip to content

Commit b67dd44

Browse files
committed
Update OSV script to ingest CodeCommit even if the package is not supported
Signed-off-by: ziad hany <ziadhany2016@gmail.com>
1 parent c9ed3fa commit b67dd44

File tree

1 file changed

+17
-13
lines changed
  • vulnerabilities/importers

1 file changed

+17
-13
lines changed

vulnerabilities/importers/osv.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)