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

Function get_affected_packages

vulnerabilities/importers/ruby.py:115–141  ·  view source on GitHub ↗

Return AffectedPackage objects one for each affected_version_range and invert the safe_version_ranges ( patched_versions , unaffected_versions ) then passing the purl and the inverted safe_version_range to the AffectedPackage object

(record, purl)

Source from the content-addressed store, hash-verified

113
114
115def get_affected_packages(record, purl):
116 """
117 Return AffectedPackage objects one for each affected_version_range and invert the safe_version_ranges
118 ( patched_versions , unaffected_versions ) then passing the purl and the inverted safe_version_range
119 to the AffectedPackage object
120 """
121 safe_version_ranges = record.get("patched_versions", [])
122 # this case happens when the advisory contain only 'patched_versions' field
123 # and it has value None(i.e it is empty :( ).
124 if not safe_version_ranges:
125 safe_version_ranges = []
126 safe_version_ranges += record.get("unaffected_versions", [])
127 safe_version_ranges = [i for i in safe_version_ranges if i]
128
129 affected_packages = []
130 affected_version_ranges = [
131 GemVersionRange.from_native(elem).invert() for elem in safe_version_ranges
132 ]
133
134 for affected_version_range in affected_version_ranges:
135 affected_packages.append(
136 AffectedPackage(
137 package=purl,
138 affected_version_range=affected_version_range,
139 )
140 )
141 return affected_packages
142
143
144def get_aliases(record) -> [str]:

Callers 2

parse_ruby_advisoryFunction · 0.70

Calls 2

AffectedPackageClass · 0.90
getMethod · 0.45

Tested by 1