Dependency Vulnerability Scanner for Secure Software Development
Features β’ Installation β’ Usage β’ API β’ Docker β’ Contributing
DepShield is an SSDLC (Secure Software Development Life Cycle) tool that scans Git repositories for known vulnerabilities in their dependencies. It leverages the OSV (Open Source Vulnerabilities) database to provide accurate, up-to-date vulnerability information.
- Fast: Uses GitHub API to fetch files directly β no cloning required
- Real-time Progress: Server-Sent Events (SSE) provide live scanning updates
- Multi-ecosystem: Supports npm, PyPI, RubyGems, Go, and Packagist
- Beautiful UI: Modern, responsive web interface with Bold Berry theme
- Export Ready: Download reports in JSON or CSV format
- No Account Required: Works with public repositories out of the box
| Feature | Description |
|---|---|
| π Multi-Ecosystem Scanning | npm, PyPI, RubyGems, Go, Packagist |
| β‘ Lightning Fast | GitHub API-based scanning, no git clone needed |
| π Real-time Progress | Live updates via Server-Sent Events |
| π¨ Modern UI | Beautiful Bold Berry color theme |
| π₯ Export Reports | JSON and CSV export with timestamps |
| π·οΈ CVE Detection | Full CVE IDs and CVSS scores |
| π Reference Links | Direct links to vulnerability details |
| π³ Docker Ready | Easy deployment with Docker |
| Ecosystem | Files |
|---|---|
| npm | package.json |
| Python | requirements.txt, Pipfile, pyproject.toml |
| Ruby | Gemfile.lock |
| Go | go.mod |
| PHP | composer.json |
- Python 3.8 or higher
- pip (Python package manager)
# Clone the repository
git clone https://github.com/elifsudeates/depshield.git
cd depshield
# Create virtual environment
python -m venv .venv
# Activate virtual environment
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.pyOpen your browser and navigate to http://127.0.0.1:5000
- Enter a GitHub repository URL (e.g.,
https://github.com/expressjs/express) - Click "Scan Repository"
- Watch real-time progress as dependencies are analyzed
- View vulnerability results sorted by severity
- Export reports in JSON or CSV format
DepShield provides a REST API for programmatic access.
POST /api/repo-info
Content-Type: application/json
{
"url": "https://github.com/expressjs/express"
}Response:
{
"name": "express",
"owner": "expressjs",
"platform": "GitHub",
"description": "Fast, unopinionated, minimalist web framework for node.",
"stars": 65000,
"language": "JavaScript",
"avatar": "https://avatars.githubusercontent.com/u/5658226"
}GET /api/scan-stream?url=https://github.com/expressjs/expressReturns Server-Sent Events with real-time progress updates.
POST /api/scan
Content-Type: application/json
{
"url": "https://github.com/expressjs/express"
}POST /api/export/json
POST /api/export/csv
Content-Type: application/json
{ /* scan results */ }# Build the image
docker build -t depshield .
# Run the container
docker run -p 5000:5000 depshieldversion: '3.8'
services:
depshield:
build: .
ports:
- "5000:5000"
restart: unless-stoppeddepshield/
βββ app.py # Flask application entry point
βββ depshield/ # Core scanning modules
β βββ __init__.py # Package initialization
β βββ config.py # Configuration settings
β βββ logger.py # Logging utilities
β βββ github_client.py # GitHub API client
β βββ parsers.py # Dependency file parsers
β βββ scanner.py # Vulnerability scanner
βββ static/ # Frontend assets
β βββ index.html # Main web interface
β βββ logo.svg # Application logo
β βββ favicon.svg # Browser favicon
βββ requirements.txt # Python dependencies
βββ Dockerfile # Docker configuration
βββ TEST_REPOS.md # Test repository links
βββ README.md # This file
Check out TEST_REPOS.md for a curated list of repositories organized by programming language for testing DepShield.
Quick test links:
- Small:
https://github.com/expressjs/express - Medium:
https://github.com/pallets/flask - Large:
https://github.com/django/django
Configuration options are available in depshield/config.py:
| Setting | Default | Description |
|---|---|---|
OSV_API |
https://api.osv.dev/v1/query |
OSV API endpoint |
GITHUB_API |
https://api.github.com |
GitHub API endpoint |
GITHUB_TIMEOUT |
15 |
GitHub request timeout (seconds) |
OSV_TIMEOUT |
10 |
OSV request timeout (seconds) |
- GitHub Only: Currently only supports GitHub repositories
- Public Repos: Works with public repositories (private repos require authentication)
- Rate Limits: GitHub API has rate limits (60 requests/hour unauthenticated)
- Nested Dependencies: Only scans direct dependencies, not transitive ones
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OSV (Open Source Vulnerabilities) for the vulnerability database
- Bulma for the CSS framework
- Tabler Icons for the icon set
- Flask for the web framework
Made with β€οΈ by Elif Sude ATES

