Skip to content

Commit 594ca0b

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 b882fa4 commit 594ca0b

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
@@ -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

Comments
 (0)