25 lines
796 B
Python
25 lines
796 B
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""Observable data loader: fetches /sbom/ and /sbom/report/licences/ from the API."""
|
||
|
|
import json
|
||
|
|
import os
|
||
|
|
import urllib.request
|
||
|
|
import urllib.error
|
||
|
|
|
||
|
|
API_BASE = os.environ.get("API_BASE", "http://127.0.0.1:8000").rstrip("/")
|
||
|
|
|
||
|
|
result = {"entries": [], "licence_report": {"groups": [], "copyleft_direct_count": 0}}
|
||
|
|
|
||
|
|
try:
|
||
|
|
with urllib.request.urlopen(f"{API_BASE}/sbom/", timeout=10) as resp:
|
||
|
|
result["entries"] = json.loads(resp.read())
|
||
|
|
except urllib.error.URLError as e:
|
||
|
|
result["error_entries"] = str(e)
|
||
|
|
|
||
|
|
try:
|
||
|
|
with urllib.request.urlopen(f"{API_BASE}/sbom/report/licences/", timeout=10) as resp:
|
||
|
|
result["licence_report"] = json.loads(resp.read())
|
||
|
|
except urllib.error.URLError as e:
|
||
|
|
result["error_licences"] = str(e)
|
||
|
|
|
||
|
|
print(json.dumps(result))
|