Skip to main content

Analyze any GitHub repository from the command line — language breakdown, contributors, health score, and more.

Project description

repo-analyzer

A fast CLI tool for GitHub repository due diligence. It analyzes repository health, engineering hygiene, ownership risk, contributor signals, and recruiter-facing trust indicators directly from the terminal.

$ repo-analyzer https://github.com/facebook/react --recruiter

Install

pip install repo-analyzer

Or clone and install locally:

git clone https://github.com/khodorrHajj/GithubRepoAnalyzer.git
cd GithubRepoAnalyzer
pip install -e .

Usage

Analyze a repo

repo-analyzer https://github.com/pallets/flask

Recruiter mode

repo-analyzer https://github.com/pallets/flask --recruiter

Compare two repos

repo-analyzer compare https://github.com/pallets/flask https://github.com/django/django

Export to JSON

repo-analyzer https://github.com/torvalds/linux --export json

Export to PDF

repo-analyzer https://github.com/torvalds/linux --export pdf -o report.pdf

Skip cache

repo-analyzer https://github.com/pallets/flask --no-cache

GitHub Token

Without a token you are limited to 60 API requests per hour. With a token you get 5,000.

Create a local .env file:

GITHUB_TOKEN=ghp_your_token_here

Or export it in your shell:

export GITHUB_TOKEN=ghp_your_token_here

The token is loaded from the user machine at runtime. It is not bundled into the package by default.

What makes it different

  • Decision-ready verdicts with strengths, concerns, and concrete recommendations.
  • Contributor risk analysis with lead contributor share, bus factor, and ownership concentration.
  • Engineering hygiene checks for CI, tests, README, CONTRIBUTING, SECURITY, CODEOWNERS, issue templates, PR templates, releases, and changelog presence.
  • Repository scorecard covering maintainability, collaboration, production readiness, onboarding quality, and overall health.
  • Trend-aware activity analysis across recent windows instead of only a single snapshot.
  • Recruiter mode for evaluating candidate and portfolio repositories with hiring-oriented signals.
  • Side-by-side comparison output that includes stronger decision metrics, not only stars and forks.

Health Score

The health score is a weighted average of five factors:

Factor Weight What it looks at
Activity 2.0 Recent commits and last push recency
Community 2.0 Stars, forks, and contributor count
Maintenance 2.0 Open issues, PR pressure, and freshness
Quality 2.5 CI, tests, docs, license, and operational hygiene
Documentation 1.5 README, description, topics, and discoverability

Project Structure

repo_analyzer/
  cli.py
  api.py
  analyzer.py
  health.py
  display.py
  cache.py
  compare.py
  export.py
tests/

Running Tests

pip install -e ".[dev]"
pytest -k "not Live"

Run the full suite, including live GitHub API checks, only when network access is available:

pytest

Built With

  • Click
  • Rich
  • Requests
  • fpdf2
  • pytest

License

MIT. See LICENSE.

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

repo_analyzer-5.1.0.tar.gz (31.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repo_analyzer-5.1.0-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file repo_analyzer-5.1.0.tar.gz.

File metadata

  • Download URL: repo_analyzer-5.1.0.tar.gz
  • Upload date:
  • Size: 31.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repo_analyzer-5.1.0.tar.gz
Algorithm Hash digest
SHA256 a6a2ed9e138f856df68b3b2f3cc91ca3c88b36c5ccf2332968fdd294924df17e
MD5 0c70fe78235ba55832517f82ad1970db
BLAKE2b-256 4c9f3f5c3760322f51590fe1da2c4f56e86d1c2c9bd3e81e01521d3637122a9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_analyzer-5.1.0.tar.gz:

Publisher: publish.yml on khodorrHajj/GithubRepoAnalyzer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repo_analyzer-5.1.0-py3-none-any.whl.

File metadata

  • Download URL: repo_analyzer-5.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repo_analyzer-5.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d0f3b0e369c0ad20ff0413228f7fb31605ac7190300b9c285d4a23b63bca4ed
MD5 12304460fcfcdf74e63127ac6dd3c111
BLAKE2b-256 675c57af56183f48163e1bd3a16c0ddeb8356198267fb948e7ff2ac6a261ba3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_analyzer-5.1.0-py3-none-any.whl:

Publisher: publish.yml on khodorrHajj/GithubRepoAnalyzer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page