Dependency Health Scanner — check if your dependencies are risky right now.
Project description
DepWatch — Dependency Health Scanner
Know why your dependencies are healthy or risky — not just that they are.
DepWatch scans a GitHub repository, extracts its dependencies, and delivers a transparent health report for each one: a numeric risk score, evidence signals, and an actionable recommendation.
Features
- Multi-signal analysis — commits, releases, contributors, and issue activity
- Risk score (0–10) — quantifiable health metric for every dependency
- Confidence levels — High / Medium / Low based on signal agreement
- Actionable recommendations — clear guidance on what to do next
- Rich CLI output — color-coded panels with detailed breakdowns
- FastAPI backend — REST API for programmatic access
Installation
From PyPI
pip install depwatch-cli
From Source
git clone https://github.com/pranavkp71/DepWatch.git
cd DepWatch
pip install -e ".[dev]"
This creates dist/dep_watch-X.Y.Z.tar.gz and dist/dep_watch-X.Y.Z-py3-none-any.whl.
Usage
Scan a Repository
depwatch scan https://github.com/fastapi/fastapi
GitHub Token (Recommended)
Set a token to avoid rate limits:
export GITHUB_TOKEN=ghp_your_token_here
Or create a .env file:
GITHUB_TOKEN=ghp_your_token_here
API Server
uvicorn app.main:app --reload
Sample Output
📦 Found 5 dependencies. Analyzing health...
🟢 5 healthy
╭─────────── pydantic ────────────╮
│ Status: Healthy │
│ Risk Score: 0/10 │
│ Confidence: High │
│ │
│ Signals: │
│ • Last commit 0 days ago │
│ • Last release 15 days ago │
│ • Contributor count: 100 │
│ • Open issues: 560 │
│ • 100 issues updated recently │
│ │
│ Action: No action needed │
╰─────────────────────────────────╯
How Scoring Works
Health Statuses
| Status | Risk Score | Meaning |
|---|---|---|
| 🟢 Healthy | 0 – 3 | Active commits, responsive maintainers |
| 🟡 Warning | 4 – 6 | Slowing activity or low contributor count |
| 🔴 Risky | 7 – 10 | Stale commits, stale releases, solo maintainer |
Risk Score Weights
| Factor | Points |
|---|---|
| No commits in 90+ days | +3 |
| Releases stale 120+ days | +3 |
| No official releases | +1 |
| Low contributor count (<2) | +2 |
| Stagnant issues (50+, no activity) | +2 |
| Large maintainer base (10+) | −2 |
Confidence Levels
- High — 3+ signals agree
- Medium — 2 signals agree
- Low — only 1 weak signal
Limitations
- Only supports GitHub-hosted repositories
- Parses
requirements.txt,package.json, andpyproject.toml - GitHub API rate limits apply (use a token for best results)
- Does not analyze code quality or vulnerabilities directly
Project Structure
depwatch/
├── app/
│ ├── main.py # FastAPI app & API models
│ ├── github/ # GitHub API client
│ ├── scoring/ # Health scoring engine
│ └── services/ # Dependency scanner + analyzer
├── cli/
│ └── main.py # Typer CLI with Rich output
├── tests/
│ └── test_scoring.py # Unit tests
├── .github/ # CI & templates
├── pyproject.toml
├── Makefile
└── README.md
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
License
MIT — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file depwatch_cli-0.1.0.tar.gz.
File metadata
- Download URL: depwatch_cli-0.1.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf92b2973df04d8da3c69c2721edea8990554daeac042394187f26b079a93126
|
|
| MD5 |
4e52db22a68fe141cb4f54f997027160
|
|
| BLAKE2b-256 |
9eec2fc37e127bad14b8611aea682d0d0b74d69dc592b1747f932a5cbf80f319
|
File details
Details for the file depwatch_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: depwatch_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ea95ea4e50a21302b1cd8307738790781ef2fe8680aad15187b9feecf3e96cc
|
|
| MD5 |
9a533a0c5c65b466f0be3c53c1ae10d1
|
|
| BLAKE2b-256 |
5b20bdb8de9ae3d38089eeeb3ac9f753136680f2474fa39c6fa189a431a87bea
|