Skip to content

Commit 61f59e9

Browse files
committed
Update data output format #16
Signed-off-by: Kartik Sibal <kartiksibal@gmail.com>
1 parent ee2a03d commit 61f59e9

1 file changed

Lines changed: 13 additions & 22 deletions

File tree

scraper/debian.py

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
from urllib.request import urlopen
2525
import json
26-
from collections import defaultdict
2726

2827
DEBIAN_ROOT_URL = "https://security-tracker.debian.org/tracker/data/json"
2928

@@ -32,8 +31,8 @@ def json_data():
3231
"""
3332
Return JSON of Debian vulnerability data.
3433
"""
35-
raw_data = urlopen(DEBIAN_ROOT_URL).read()
36-
json_data = json.loads(raw_data)
34+
debian_data = urlopen(DEBIAN_ROOT_URL).read()
35+
json_data = json.loads(debian_data)
3736

3837
return json_data
3938

@@ -43,27 +42,19 @@ def extract_data(data):
4342
Return a dictionary of package names and vulnerability details.
4443
Accepts `JSON` as input.
4544
"""
46-
47-
cves = []
48-
package_names = []
49-
package_data = {}
50-
cve_data = {}
51-
final_data = {}
52-
53-
fields_names = ['status', 'urgency', 'fixed_version']
45+
final_data = []
5446

5547
for package_name, vulnerabilities in data.items():
56-
package_names.append(package_name)
5748
for vulnerability, details in vulnerabilities.items():
58-
cves.append(vulnerability)
59-
for distro, version_detail in details.get('releases', {'jessie'}).items():
60-
for name in fields_names:
61-
cve_data[name] = version_detail.get(name)
62-
63-
for i, j in enumerate(package_names):
64-
package_data[package_names[i]] = [cves[i]]
65-
66-
for k, v in enumerate(package_data):
67-
final_data.setdefault(k, []).append(cve_data[k])
49+
for distro, version_detail in details.get('releases', {}).items():
50+
if distro == 'jessie':
51+
final_data.append({
52+
"package_name": package_name,
53+
"vulnerability_id": vulnerability,
54+
"status": version_detail.get('status'),
55+
"Urgency": version_detail.get("urgency"),
56+
"Fixed_Version": version_detail.get("fixed_version")
57+
}
58+
)
6859

6960
return final_data

0 commit comments

Comments
 (0)