Skip to content

Commit 33d8daa

Browse files
committed
Use class for returning versions partitioned by cutoff time
Signed-off-by: Shivam Sandbhor <shivam.sandbhor@gmail.com>
1 parent e8f0a57 commit 33d8daa

16 files changed

Lines changed: 53 additions & 41 deletions

pytest.ini

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
[pytest]
2-
DJANGO_SETTINGS_MODULE = vulnerablecode.settings
2+
DJANGO_SETTINGS_MODULE = vulnerablecode.settings
3+
markers =
4+
webtest

vulnerabilities/importers/apache_httpd.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
from vulnerabilities.data_source import VulnerabilitySeverity
3838
from vulnerabilities.package_managers import GitHubTagsAPI
3939
from vulnerabilities.severity_systems import scoring_systems
40-
from vulnerabilities.helpers import create_etag
4140
from vulnerabilities.helpers import nearest_patched_package
4241

4342

@@ -106,7 +105,7 @@ def to_advisory(self, data):
106105
fixed_packages.extend(
107106
[
108107
PackageURL(type="apache", name="httpd", version=version)
109-
for version in self.version_api.get("apache/httpd")["valid"]
108+
for version in self.version_api.get("apache/httpd").valid_versions
110109
if MavenVersion(version) in version_range
111110
]
112111
)
@@ -115,7 +114,7 @@ def to_advisory(self, data):
115114
affected_packages.extend(
116115
[
117116
PackageURL(type="apache", name="httpd", version=version)
118-
for version in self.version_api.get("apache/httpd")["valid"]
117+
for version in self.version_api.get("apache/httpd").valid_versions
119118
if MavenVersion(version) in version_range
120119
]
121120
)

vulnerabilities/importers/apache_kafka.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def to_advisory(self, advisory_page):
7272

7373
fixed_packages = [
7474
PackageURL(type="apache", name="kafka", version=version)
75-
for version in self.version_api.get("apache/kafka")["valid"]
75+
for version in self.version_api.get("apache/kafka").valid_versions
7676
if any(
7777
[
7878
MavenVersion(version) in version_range
@@ -83,7 +83,7 @@ def to_advisory(self, advisory_page):
8383

8484
affected_packages = [
8585
PackageURL(type="apache", name="kafka", version=version)
86-
for version in self.version_api.get("apache/kafka")["valid"]
86+
for version in self.version_api.get("apache/kafka").valid_versions
8787
if any(
8888
[
8989
MavenVersion(version) in version_range

vulnerabilities/importers/apache_tomcat.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def updated_advisories(self):
6363

6464
def fetch_pages(self):
6565
tomcat_major_versions = {
66-
i[0] for i in self.version_api.get("org.apache.tomcat:tomcat")["valid"]
66+
i[0] for i in self.version_api.get("org.apache.tomcat:tomcat").valid_versions
6767
}
6868
for version in tomcat_major_versions:
6969
page_url = self.base_url.format(version)
@@ -104,7 +104,9 @@ def to_advisories(self, apache_tomcat_advisory_html):
104104
PackageURL(
105105
type="maven", namespace="apache", name="tomcat", version=version
106106
)
107-
for version in self.version_api.get("org.apache.tomcat:tomcat")["valid"]
107+
for version in self.version_api.get(
108+
"org.apache.tomcat:tomcat"
109+
).valid_versions
108110
if MavenVersion(version) in version_range
109111
]
110112
)

vulnerabilities/importers/elixir_security.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def get_versions_for_pkg_from_range_list(self, version_range_list, pkg_name):
8383

8484
safe_pkg_versions = []
8585
vuln_pkg_versions = []
86-
all_version_list = self.pkg_manager_api.get(pkg_name)["valid"]
86+
all_version_list = self.pkg_manager_api.get(pkg_name).valid_versions
8787
if not version_range_list:
8888
return [], all_version_list
8989
version_ranges = [

vulnerabilities/importers/github.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def process_response(self) -> List[Advisory]:
209209
aff_vers, unaff_vers = self.categorize_versions(
210210
self.version_api.package_type,
211211
aff_range,
212-
self.version_api.get(name, until=cutoff_time)["valid"],
212+
self.version_api.get(name, until=cutoff_time).valid_versions,
213213
)
214214
affected_purls = [
215215
PackageURL(name=pkg_name, namespace=ns, version=version, type=pkg_type)

vulnerabilities/importers/istio.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def get_pkg_versions_from_ranges(self, version_range_list, release_date):
6666
"""Takes a list of version ranges(affected) of a package
6767
as parameter and returns a tuple of safe package versions and
6868
vulnerable package versions"""
69-
all_version = self.version_api.get("istio/istio", release_date)["valid"]
69+
all_version = self.version_api.get("istio/istio", release_date).valid_versions
7070
safe_pkg_versions = []
7171
vuln_pkg_versions = []
7272
version_ranges = [

vulnerabilities/importers/nginx.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,10 @@ def set_api(self):
5353

5454
# For some reason nginx tags it's releases are in the form of `release-1.2.3`
5555
# Chop off the `release-` part here.
56-
for index, version in enumerate(self.version_api.cache["nginx/nginx"]["valid"]):
57-
self.version_api.cache["nginx/nginx"]["valid"][index] = version.replace("release-", "")
56+
for index, version in enumerate(self.version_api.cache["nginx/nginx"].valid_versions):
57+
self.version_api.cache["nginx/nginx"].valid_versions[index] = version.replace(
58+
"release-", ""
59+
)
5860

5961
def updated_advisories(self):
6062
advisories = []
@@ -135,7 +137,7 @@ def extract_fixed_pkgs(self, vuln_info):
135137
)
136138

137139
valid_versions = find_valid_versions(
138-
self.version_api.get("nginx/nginx")["valid"], version_ranges
140+
self.version_api.get("nginx/nginx").valid_versions, version_ranges
139141
)
140142

141143
return [
@@ -172,7 +174,7 @@ def extract_vuln_pkgs(self, vuln_info):
172174
)
173175

174176
valid_versions = find_valid_versions(
175-
self.version_api.get("nginx/nginx")["valid"], version_ranges
177+
self.version_api.get("nginx/nginx").valid_versions, version_ranges
176178
)
177179
qualifiers = {}
178180
if windows_only:

vulnerabilities/importers/npm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def process_file(self, file) -> List[Advisory]:
8888
publish_date = parse(record["updated_at"])
8989
publish_date.replace(tzinfo=pytz.UTC)
9090

91-
all_versions = self.versions.get(package_name, until=publish_date)["valid"]
91+
all_versions = self.versions.get(package_name, until=publish_date).valid_versions
9292
aff_range = record.get("vulnerable_versions")
9393
if not aff_range:
9494
aff_range = ""

vulnerabilities/importers/ruby.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,7 @@ def process_file(self, path) -> List[Advisory]:
103103

104104
if not getattr(self, "pkg_manager_api", None):
105105
self.pkg_manager_api = RubyVersionAPI()
106-
all_vers = self.pkg_manager_api.get(package_name, until=publish_time)["valid"]
107-
print(
108-
f"Ignored {len(self.pkg_manager_api.get(package_name,until=publish_time)['new'])} versions"
109-
)
106+
all_vers = self.pkg_manager_api.get(package_name, until=publish_time).valid_versions
110107
safe_versions, affected_versions = self.categorize_versions(all_vers, safe_version_ranges)
111108

112109
impacted_purls = [

0 commit comments

Comments
 (0)