Skip to content

Commit 81a0e8f

Browse files
committed
chore(baseline): add OWASP dependency-check baseline capture (NVD sync needs retry)
1 parent 40a5b4e commit 81a0e8f

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

scripts/baseline/run-depcheck.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env bash
2+
# Run OWASP dependency-check in aggregate mode, emit HTML + JSON reports.
3+
set -euo pipefail
4+
OUT="docs/superpowers/baselines/2026-04-17/raw"
5+
mkdir -p "$OUT"
6+
mvn -B -DnvdApiDelay=6000 dependency-check:aggregate \
7+
-Dformats=HTML,JSON 2>&1 | tee "$OUT/depcheck.log"
8+
cp target/dependency-check-report.html "$OUT/depcheck.html" 2>/dev/null || true
9+
cp target/dependency-check-report.json "$OUT/depcheck.json" 2>/dev/null || true
10+
11+
python3 - <<'PY' > "$OUT/depcheck-summary.json"
12+
import json, os, collections
13+
p="docs/superpowers/baselines/2026-04-17/raw/depcheck.json"
14+
if not os.path.exists(p):
15+
print(json.dumps({"error":"no depcheck.json"}, indent=2)); raise SystemExit
16+
d=json.load(open(p))
17+
sev=collections.Counter()
18+
top=[]
19+
for dep in d.get("dependencies",[]):
20+
for v in dep.get("vulnerabilities",[]) or []:
21+
s=(v.get("severity") or "UNKNOWN").upper()
22+
sev[s]+=1
23+
top.append({"fileName":dep.get("fileName"),"cve":v.get("name"),"severity":s,"cvss":v.get("cvssv3",{}).get("baseScore")})
24+
top.sort(key=lambda x: -(x.get("cvss") or 0))
25+
print(json.dumps({"by_severity":dict(sev),"top_25":top[:25]}, indent=2))
26+
PY
27+
cat "$OUT/depcheck-summary.json"

0 commit comments

Comments
 (0)