88
99# 🔭 DevLens
1010
11- ** Repo health scoring in 9 dimensions. Free forever, live from the GitHub API.**
11+ ** Repo health scoring in 9 dimensions + real cybersecurity vulnerability scanning . Free forever, live from the GitHub API.**
1212
13- [ 🌐 Live Dashboard] ( https://devlens-io.vercel.app ) · [ 📖 Docs] ( https://devlens-io.vercel.app/docs ) · [ 📊 Stats] ( https://devlens-io.vercel.app/stats ) · [ 💛 Sponsor] ( https://github.com/sponsors/SamoTech )
13+ [ 🌐 Live Dashboard] ( https://devlens-io.vercel.app ) · [ 🔐 Security Scanner ] ( https://devlens-io.vercel.app/security ) · [ 📖 Docs] ( https://devlens-io.vercel.app/docs ) · [ 📊 Stats] ( https://devlens-io.vercel.app/stats ) · [ 💛 Sponsor] ( https://github.com/sponsors/SamoTech )
1414
1515</div >
1616
1717---
1818
1919<!-- DEVLENS:START -->
20- ![ DevLens Health] ( https://img.shields.io/badge/DevLens%20Health-97%2F100-brightgreen?style=flat-square&logo=github ) ** Overall health: 97/100** — * Last updated: 2026-04-07 *
20+ ![ DevLens Health] ( https://img.shields.io/badge/DevLens%20Health-97%2F100-brightgreen?style=flat-square&logo=github ) ** Overall health: 97/100** — * Last updated: 2026-04-08 *
2121
2222| Dimension | Score | Weight |
2323| ---| ---| ---|
2929| 🎯 Issue Response | ![ 100] ( https://img.shields.io/badge/100-brightgreen?style=flat-square ) | 10% |
3030| ⭐ Community Signal | ![ 0] ( https://img.shields.io/badge/0-red?style=flat-square ) | 5% |
3131| 🔀 PR Velocity | ![ 100] ( https://img.shields.io/badge/100-brightgreen?style=flat-square ) | 3% |
32- | 🔒 Security | ![ 65 ] ( https://img.shields.io/badge/65-yellow ?style=flat-square ) | 2% |
32+ | 🔒 Security | ![ 82 ] ( https://img.shields.io/badge/82-brightgreen ?style=flat-square ) | 2% |
3333<!-- DEVLENS:END -->
3434
3535---
3636
3737## ✨ What DevLens Does
3838
39- Paste any public GitHub repo URL into [ devlens-io.vercel.app] ( https://devlens-io.vercel.app ) and get a live health report — no signup, no API key needed.
39+ Paste any public GitHub repo URL into [ devlens-io.vercel.app] ( https://devlens-io.vercel.app ) and get a live health report + deep security scan — no signup, no API key needed.
4040
4141| Feature | Details | Free |
4242| ---| ---| ---|
4343| 🏥 ** 9-dimension health score** | Weighted 0–100 score, adjustable sliders | ✅ |
44+ | 🔐 ** Security Intelligence Engine** | 13 real scan modules — CVEs, secrets, SAST, NVD, advisories | ✅ |
4445| 📊 ** Live GitHub API** | Every score fetched fresh from GitHub, 15-min Redis cache | ✅ |
4546| 📈 ** Trend history** | Real weekly snapshots stored in Redis, shown as a trend chart | ✅ |
4647| 🏢 ** Org analysis** | Score all public repos in any GitHub org, ranked by health | ✅ |
@@ -53,7 +54,56 @@ Paste any public GitHub repo URL into [devlens-io.vercel.app](https://devlens-io
5354
5455---
5556
56- ## 📊 The 9 Dimensions
57+ ## 🔐 Security Intelligence Engine — 13 Free Scan Modules
58+
59+ DevLens v1.1.0 ships a full vulnerability scanner at [ /security] ( https://devlens-io.vercel.app/security ) . Every module uses a ** 100% free API** — no paid plans, no credit card.
60+
61+ ```
62+ Module Source Auth Needed
63+ ──────────────────────────────────────────────────────────────────────────
64+ 1. Dependabot CVEs github.com API GITHUB_TOKEN
65+ 2. Secret Scanning github.com API GITHUB_TOKEN
66+ 3. Code Scanning (SAST) github.com API (CodeQL) GITHUB_TOKEN
67+ 4. OSV.dev api.osv.dev None (free)
68+ 5. NIST NVD services.nvd.nist.gov Optional key (free)
69+ 6. GitHub Advisory DB api.github.com GraphQL GITHUB_TOKEN
70+ 7. PyPI Safety DB osv.dev × requirements.txt None (free)
71+ 8. Retire.js CDN Check osv.dev × HTML script src None (free)
72+ 9. License Risk github.com API GITHUB_TOKEN
73+ 10. CI Check Runs github.com API GITHUB_TOKEN
74+ 11. SonarCloud sonarcloud.io API None (public repos)
75+ 12. DeepSource api.deepsource.io GraphQL None (public repos)
76+ 13. Codecov codecov.io API None (public repos)
77+ ```
78+
79+ ### Security Score Formula (0–100)
80+
81+ | Module | Max Deduction |
82+ | ---| ---|
83+ | Dependabot (critical/high/medium CVEs) | −30 pts |
84+ | Secret scanning open alerts | −25 pts |
85+ | Code scanning SAST findings | −24 pts |
86+ | OSV.dev dependency vulns | −28 pts |
87+ | NIST NVD CVEs | −27 pts |
88+ | GitHub Advisory DB hits | −21 pts |
89+ | PyPI Safety DB vulns | −27 pts |
90+ | Retire.js vulnerable CDN libs | −20 pts |
91+ | Missing SECURITY.md | −3 pts |
92+ | Copyleft / missing license | −5 pts |
93+
94+ ### Security API
95+
96+ ``` bash
97+ # Full security scan (cached 15 min)
98+ GET https://devlens-io.vercel.app/api/security? repo=owner/name
99+
100+ # Force fresh scan (bypass cache)
101+ GET https://devlens-io.vercel.app/api/security? repo=owner/name& force=1
102+ ```
103+
104+ ---
105+
106+ ## 📊 The 9 Health Dimensions
57107
58108```
59109Dimension Default Weight What it measures
@@ -66,12 +116,10 @@ CI/CD Setup 10% GitHub Actions workflow count
66116Issue Response 10% Closed-to-total issue ratio
67117Community Signal 5% Logarithmic score from stars + forks
68118PR Velocity 3% Average PR merge time (last 20 merged PRs)
69- Security 2% SECURITY.md + Dependabot + CodeQL/Trivy/Snyk
119+ Security 2% Now powered by the full 13-module scanner
70120```
71121
72- Weights are ** fully adjustable** in the UI via sliders — they auto-normalize to 100%. Custom-weight runs bypass the Redis cache for a fresh score.
73-
74- See the full algorithm breakdown in the [ Docs] ( https://devlens-io.vercel.app/docs ) .
122+ Weights are ** fully adjustable** in the UI via sliders — they auto-normalize to 100%.
75123
76124---
77125
@@ -80,6 +128,7 @@ See the full algorithm breakdown in the [Docs](https://devlens-io.vercel.app/doc
80128| Page | URL | Description |
81129| ---| ---| ---|
82130| Analyze | ` / ` | Analyze any public repo, adjust weights |
131+ | Security | ` /security ` | 13-module vulnerability & code quality scanner |
83132| Org | ` /org ` | Score all repos in a GitHub org |
84133| Compare | ` /compare ` | Side-by-side two-repo comparison |
85134| Leaderboard | ` /leaderboard ` | Top-scoring repos from all users |
@@ -92,7 +141,7 @@ See the full algorithm breakdown in the [Docs](https://devlens-io.vercel.app/doc
92141
93142---
94143
95- ## 🚀 Quick Start — Add badge to your README
144+ ## 🚀 Quick Start — Add Badge to Your README
96145
97146### Option A — Static badge
98147
@@ -141,6 +190,10 @@ jobs:
141190# Analyze a repo
142191GET https://devlens-io.vercel.app/api/analyze?repo=owner/name
143192
193+ # Full security + vulnerability scan
194+ GET https://devlens-io.vercel.app/api/security?repo=owner/name
195+ GET https://devlens-io.vercel.app/api/security?repo=owner/name&force=1 # bypass cache
196+
144197# Compare two repos
145198GET https://devlens-io.vercel.app/api/compare?a=owner/a&b=owner/b
146199
@@ -157,8 +210,6 @@ GET https://devlens-io.vercel.app/api/badge?repo=owner/name
157210GET https://devlens-io.vercel.app/api/stats
158211` ` `
159212
160- Full API docs with response shapes : [devlens-io.vercel.app/docs](https://devlens-io.vercel.app/docs)
161-
162213---
163214
164215# # 🛠️ Self-Hosting
@@ -171,7 +222,7 @@ cp .env.example .env.local # fill in env vars
171222npm run dev # → http://localhost:3000
172223` ` `
173224
174- **Required environment variables:**
225+ **Environment variables:**
175226
176227` ` ` env
177228# GitHub OAuth (Sign in with GitHub)
@@ -183,8 +234,13 @@ AUTH_SECRET=
183234UPSTASH_REDIS_REST_URL=
184235UPSTASH_REDIS_REST_TOKEN=
185236
186- # Optional — server-side GitHub token (60 → 5000 req/hr)
237+ # Server-side GitHub token (60 → 5000 req/hr)
238+ # Powers 9 of the 13 security scan modules
187239GITHUB_TOKEN=
240+
241+ # NIST NVD API key — free, raises rate limit 10×
242+ # Register at: https://nvd.nist.gov/developers/request-an-api-key
243+ NVD_API_KEY= # optional but recommended
188244` ` `
189245
190246**Deploy to Vercel:**
@@ -197,7 +253,7 @@ vercel --cwd dashboard
197253
198254# # 🗺️ Roadmap
199255
200- - [x] 9-dimension health score engine (README, Activity, Freshness, Docs, CI, Issues, Community, PR Velocity, Security)
256+ - [x] 9-dimension health score engine
201257- [x] Adjustable weight sliders with auto-normalization
202258- [x] Redis-backed watchlist, history snapshots, stats counters
203259- [x] Live trend chart from real historical data
@@ -207,6 +263,12 @@ vercel --cwd dashboard
207263- [x] GitHub Actions integration
208264- [x] Dark / light mode
209265- [x] SEO : sitemap, robots.txt, Open Graph
266+ - [x] **Security Intelligence Engine — 13 free scan modules** ✨ *new in v1.1.0*
267+ - [x] **NIST NVD integration** ✨ *new in v1.1.0*
268+ - [x] **GitHub Advisory Database GraphQL** ✨ *new in v1.1.0*
269+ - [x] **PyPI Safety DB scanning** ✨ *new in v1.1.0*
270+ - [x] **Retire.js CDN vulnerability heuristic** ✨ *new in v1.1.0*
271+ - [ ] GitHub Advisory cross-reference with actual installed versions
210272- [ ] Email digest (Resend free tier)
211273- [ ] Slack / Discord notifications
212274- [ ] Private repo support (GitHub OAuth)
@@ -236,6 +298,6 @@ MIT © [SamoTech](https://github.com/SamoTech)
236298---
237299
238300<div align="center">
239- <sub>Built with Next.js + Upstash Redis + GitHub API + ☕ by SamoTech<br/>
301+ <sub>Built with Next.js · Upstash Redis · GitHub API · NIST NVD · OSV.dev · ☕ by SamoTech<br/>
240302 Free forever. If it helped you, <a href="https://github.com/sponsors/SamoTech">a small sponsorship</a> keeps the lights on. 💛</sub>
241303</div>
0 commit comments