GitHub repository health analyzer — scores repos 0-100 across commit momentum, bus factor, issue resolution, PR latency, and release cadence
Project description
GitHub Repository Analyzer
A command-line tool that analyzes GitHub repository health across commits, issues, pull requests, and releases.
Installation
git clone https://github.com/Alir3zag/gh-analyzer.git cd gh-analyzer python -m venv venv venv\Scripts\activate pip install -r requirements.txt
Authentication
Set a GitHub Personal Access Token to raise the rate limit from 60 to 5,000 requests/hour:
export GITHUB_TOKEN=your_token_here
Without a token the tool still works but is limited to 60 requests/hour.
Usage
python -m gh_analyzer.main OWNER/REPO [options]
Options
| Flag | Default | Description |
|---|---|---|
| --since DAYS | 30 | How many days back to analyze |
| --limit N | 100 | Maximum number of results to fetch |
| --format | text | Output format: text or json |
| --token TOKEN | — | GitHub token (overrides GITHUB_TOKEN) |
| --no-token | — | Force unauthenticated mode |
| --validate-token | — | Validate token before running |
| --verbose | — | Enable debug logging |
Examples
python -m gh_analyzer.main psf/requests python -m gh_analyzer.main psf/requests --since 90 python -m gh_analyzer.main psf/requests --token ghp_xxx
Project Structure
gh-analyzer/ ├── gh_analyzer/ │ ├── init.py │ ├── main.py # Entry point and fetch orchestration │ ├── cli.py # Argument parsing │ ├── github_api.py # Async GitHub API client │ ├── models.py # Domain models │ ├── exceptions.py # Structured error types │ ├── reporter.py # Rich terminal output │ ├── analytics.py # Health scoring │ └── cache.py # Response caching ├── requirements.txt ├── .gitignore └── README.md
API Client
- Async requests via aiohttp with semaphore-based concurrency control
- Automatic retry with exponential backoff and jitter
- Primary and secondary rate limit detection and backoff
- Structured exceptions for all failure modes
- Pagination across all list endpoints
Project details
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 gh_analyzer-0.1.0.tar.gz.
File metadata
- Download URL: gh_analyzer-0.1.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.13.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fb10bbb8848bfb4a55d94a1bcbf5a07d0d53522a64f31288444d67818ea90d9
|
|
| MD5 |
9170d268c9a9e000bfdb8d5fa98f6693
|
|
| BLAKE2b-256 |
4b3e14cd71190cd62af1fd65425770467c9fd843aa46909ac8a899fa09c623e4
|
File details
Details for the file gh_analyzer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gh_analyzer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.13.5 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e72296c86c737cb7e889982b7d1bbad66ba29686a0e74e9eb0c94bc29013b22a
|
|
| MD5 |
222be6d4a527a69e43bcef1b850371d8
|
|
| BLAKE2b-256 |
20f8c4d23ac0cd14f7b32053cd6bbb9de73b3a324f5dfc7aa63f718ec2cbde37
|