MCPcopy Create free account
hub / github.com/aboutcode-org/vulnerablecode / get_fixed_versions

Function get_fixed_versions

vulnerabilities/importers/osv.py:282–331  ·  view source on GitHub ↗

Return a list of unique fixed univers Versions given a ``fixed_range`` univers VersionRange and a ``raw_id``. For example:: >>> get_fixed_versions(fixed_range={}, raw_id="GHSA-j3f7-7rmc-6wqj", supported_ecosystem="pypi",) [] >>> get_fixed_versions( ... fixed_range={"ty

(fixed_range, raw_id, supported_ecosystem)

Source from the content-addressed store, hash-verified

280
281
282def get_fixed_versions(fixed_range, raw_id, supported_ecosystem) -> List[Version]:
283 """
284 Return a list of unique fixed univers Versions given a ``fixed_range``
285 univers VersionRange and a ``raw_id``.
286 For example::
287 >>> get_fixed_versions(fixed_range={}, raw_id="GHSA-j3f7-7rmc-6wqj", supported_ecosystem="pypi",)
288 []
289 >>> get_fixed_versions(
290 ... fixed_range={"type": "ECOSYSTEM", "events": [{"fixed": "1.7.0"}], },
291 ... raw_id="GHSA-j3f7-7rmc-6wqj",
292 ... supported_ecosystem="pypi",
293 ... )
294 [PypiVersion(string='1.7.0')]
295 """
296 fixed_versions = []
297 if "type" not in fixed_range:
298 logger.error(f"Invalid fixed_range type for: {fixed_range} for OSV id: {raw_id!r}")
299 return []
300
301 fixed_range_type = fixed_range["type"]
302
303 version_range_class = RANGE_CLASS_BY_SCHEMES.get(supported_ecosystem)
304 version_class = version_range_class.version_class if version_range_class else None
305
306 for version in extract_fixed_versions(fixed_range):
307 if fixed_range_type == "ECOSYSTEM":
308 try:
309 if not version_class:
310 raise InvalidVersion(
311 f"Unsupported version for ecosystem: {supported_ecosystem}"
312 )
313 fixed_versions.append(version_class(version))
314 except InvalidVersion:
315 logger.error(
316 f"Invalid version class: {version_class} - {version!r} for OSV id: {raw_id!r}"
317 )
318
319 elif fixed_range_type == "SEMVER":
320 try:
321 fixed_versions.append(SemverVersion(version))
322 except InvalidVersion:
323 logger.error(f"Invalid SemverVersion: {version!r} for OSV id: {raw_id!r}")
324 else:
325 logger.error(f"Unsupported fixed version type: {version!r} for OSV id: {raw_id!r}")
326
327 # if fixed_range_type == "GIT":
328 # TODO add GitHubVersion univers fix_version
329 # logger.error(f"NotImplementedError GIT Version - {raw_id !r} - {i !r}")
330
331 return dedupe(fixed_versions)

Callers 5

parse_advisory_dataFunction · 0.85

Calls 3

dedupeFunction · 0.90
extract_fixed_versionsFunction · 0.85
getMethod · 0.45

Tested by 4