Repolizer is a comprehensive GitHub repository health analysis tool with web UI that evaluates repositories across multiple dimensions to provide actionable insights for maintaining and improving code quality, security, and best practices.
- Multi-dimensional Repository Analysis: Evaluates repositories across 10+ categories including security, documentation, code quality, performance, testing, and more
- GitHub Repository Scraping: Intelligent scraping system with rate limiting, token rotation, and fallback mechanisms
- Progressive Web App (PWA): Installable web application with offline capabilities
- Real-time Analysis: Live progress tracking with Server-Sent Events (SSE)
- Batch Processing: Analyze multiple repositories efficiently with parallel processing
- Report Generation: Comprehensive PDF and HTML reports with detailed findings
- π‘οΈ Security: Vulnerability scanning, dependency checks, secret detection
- π Documentation: README quality, API docs, code comments, examples
- β‘ Performance: Bundle analysis, caching, lazy loading, query optimization
- π§ Code Quality: Linting, complexity metrics, code duplication, refactoring opportunities
- π§ͺ Testing: Test coverage, unit tests, integration tests, E2E testing
- βΏ Accessibility: WCAG compliance, alt text, keyboard navigation, screen reader compatibility
- π CI/CD: Build status, deployment frequency, pipeline configuration
- π§ Maintainability: Code organization, modularity, dependency management
- βοΈ Licensing: License compliance, compatibility checks
- π₯ Community: Contribution guidelines, issue templates, community health
- Repository Dashboard: Visual overview of all analyzed repositories with filtering and sorting
- Detailed Reports: In-depth analysis with category breakdowns and recommendations
- History Tracking: Track repository health improvements over time
- Share Reports: Generate shareable links and social media integration
- Statistics Dashboard: Aggregate insights across all analyzed repositories
- Python 3.8+
- Git
- GitHub Personal Access Token (optional but recommended for higher rate limits)
-
Clone the repository:
git clone https://github.com/your-username/repolizer.git cd repolizer
-
Install dependencies:
pip install -r requirements.txt
-
Configure authentication (optional):
cp config.json.example config.json # Edit config.json with your GitHub token
python app.py
Access the web interface at http://localhost:5000
python github_scraper.py --min-stars 100 --languages python,javascript --max-pages 5
python repolizer_single.py --repo microsoft/vscode
python repolizer_single.py --process-all
The scraper supports multiple configuration options:
# Basic scraping with filters
python github_scraper.py \
--min-stars 50 \
--languages "python,javascript,typescript" \
--pushed-after "2023-01-01" \
--max-pages 10
# Using multiple GitHub tokens for higher rate limits
python github_scraper.py \
--github-token "token1,token2,token3" \
--simple-query \
--max-repos 1000
Configuration Options:
--min-stars
: Minimum star count filter--languages
: Comma-separated list of programming languages--pushed-after
: Filter by last update date--countries
: Filter by contributor location--owners
: Filter by repository owners--max-pages
: Limit API pages to fetch--max-repos
: Maximum repositories to collect
# Analyze specific repository
python repolizer_single.py --repo facebook/react
# Force re-analysis of previously processed repository
python repolizer_single.py --repo facebook/react --force
# Analyze specific categories only
python repolizer_single.py --repo facebook/react --categories "security,documentation,testing"
# Analyze specific checks only
python repolizer_single.py --repo facebook/react --checks "readme,license,test_coverage"
# Process all repositories (sequential)
python repolizer_single.py --process-all
# Parallel processing with custom worker count
python repolizer_single.py --process-all --parallel --max-workers 8
# Resilient mode (skip problematic repositories)
python repolizer_single.py --process-all --resilient --resilient-timeout 120
- View all analyzed repositories with visual health scores
- Filter by language, score range, or search terms
- Sort by score, stars, last updated, or alphabetically
- Pagination for large repository collections
- Real-time progress tracking during analysis
- Live log streaming for transparency
- Batch analysis with queue management
- Result export in JSON format
- Interactive HTML reports with category breakdowns
- PDF export for offline sharing
- Historical tracking to monitor improvements
- Shareable links for collaboration
Create config.json
from the example:
{
"github_token": "your-github-token-here",
"rate_limits": {
"github_api": 5000,
"github_search": 30
},
"retries": {
"max_attempts": 3,
"backoff_factor": 1.5
}
}
Modify config.yaml
to customize:
- Check categories and weights
- API endpoints and timeouts
- Notification settings
- Output formatting
The web interface supports basic authentication:
- Default credentials:
admin
/invaders
- Configure in
app.py
or environment variables - Change default credentials in production!
- 0-39: Needs Improvement (Red)
- 40-69: Good (Yellow)
- 70-100: Excellent (Green)
Each category is evaluated independently:
- Security: CVE scanning, dependency analysis, secret detection
- Documentation: Completeness, clarity, examples, API docs
- Code Quality: Complexity, duplication, style consistency
- Testing: Coverage percentage, test types, reliability
- Performance: Bundle size, optimization, caching strategies
Reports include:
- Critical issues requiring immediate attention
- Improvement suggestions for each category
- Best practice recommendations
- Resource links for implementation guidance
- Tokens are never stored - only used for API requests
- Local analysis - repositories are cloned temporarily and cleaned up
- No data collection - analysis results stored locally
- Rate limiting to respect GitHub API guidelines
- Secure defaults for all configurations
Repolizer is a Progressive Web App with:
- Offline functionality for previously loaded data
- Install prompt for desktop and mobile
- Service worker caching for static assets
- Responsive design for all screen sizes
- Fast loading with critical CSS inlining
We welcome contributions! Please see our Contributing Guidelines for details.
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
python -m pytest tests/
# Start development server with auto-reload
flask --app app.py --debug run
repolizer/
βββ app.py # Main Flask application
βββ github_scraper.py # Repository scraping logic
βββ repolizer_single.py # Analysis orchestrator
βββ checks/ # Analysis modules by category
β βββ security/
β βββ documentation/
β βββ performance/
β βββ ...
βββ templates/ # HTML templates
βββ static/ # CSS, JS, and assets
βββ utils/ # Utility functions
βββ docs/ # Documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: Report bugs and feature requests on GitHub Issues
- Documentation: Check the docs/ directory for detailed guides
Made with β€οΈ by the Repolizer team
Helping developers build better, more secure, and well-documented repositories.