Skip to main content

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, and pyproject.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.

Metadata

Release files for depwatch-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for depwatch-cli 0.1.0
File Size Uploaded
depwatch_cli-0.1.0.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for depwatch-cli 0.1.0
File Interpreter ABI Platform
depwatch_cli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.2 kB

Release files / depwatch_cli-0.1.0.tar.gz

Download URL depwatch_cli-0.1.0.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bf92b2973df04d8da3c69c2721edea8990554daeac042394187f26b079a93126
BLAKE2b-256 checksum
How to use checksums
9eec2fc37e127bad14b8611aea682d0d0b74d69dc592b1747f932a5cbf80f319
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / depwatch_cli-0.1.0-py3-none-any.whl

Download URL depwatch_cli-0.1.0-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ea95ea4e50a21302b1cd8307738790781ef2fe8680aad15187b9feecf3e96cc
BLAKE2b-256 checksum
How to use checksums
5b20bdb8de9ae3d38089eeeb3ac9f753136680f2474fa39c6fa189a431a87bea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page