Skip to main content

github-rep

PyPI version Python versions CI License: MIT

Score any GitHub user's reputation across 11 honest signals and get a prioritized fix list — in under 30 seconds.


Why this exists

GitHub profiles are the de-facto developer resume. Most advice on building GitHub reputation is either vague ("just contribute more") or gameable (spam-stars, low-effort PRs). This tool measures the signals that actually matter to recruiters, maintainers, and other developers — and tells you exactly what to fix first, ordered by impact.


Install

pip install github-rep

Requires Python 3.9+. No configuration needed — works unauthenticated (60 req/hr) or with a GitHub token for 5000 req/hr.


Quickstart

# Analyze any GitHub user
github-rep analyze-profile torvalds

# Use a token to avoid rate limits
export GITHUB_TOKEN=ghp_yourtoken
github-rep analyze-profile sindresorhus

# Machine-readable JSON output
github-rep analyze-profile gvanrossum --json

# Show all findings, including low-priority ones
github-rep analyze-profile octocat --verbose

# Compare multiple profiles side by side
github-rep compare torvalds gvanrossum sindresorhus

# Check your API rate limit
github-rep rate-limit

Sample output

$ github-rep analyze-profile torvalds

╭──────────────────────────────── GitHub Profile ─────────────────────────────╮
│ @torvalds  |  Linus Torvalds                                                │
│                                                                              │
│ Followers: 305,509  |  Public repos: 12  |  Stars earned: 246,028           │
╰──────────────────────────────────────────────────────────────────────────────╯
Grade: B  (78/100)
Tier: Active developer

                Score Breakdown
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━┓
┃ Dimension                ┃  Score ┃   Max ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━┩
│ Profile Completeness     │      4 │    10 │
│ Readme Quality           │     12 │    15 │
│ Star Signal              │     20 │    20 │
│ Contribution Streak      │     15 │    15 │
│ Repo Diversity           │      7 │    10 │
│ Description Quality      │     10 │    10 │
│ Topic Tags               │      0 │     5 │
│ Fork Ratio               │      5 │     5 │
│ Recent Activity          │      5 │    10 │
│ Release Cadence          │      0 │     5 │
│ Profile Readme           │      0 │     5 │
└──────────────────────────┴────────┴───────┘

Priority fixes:
  [HIGH] Missing bio
     Your bio is empty. It is the first thing visitors read.
     Fix: Write 1-2 sentences: your focus, what you build, your superpower.

What is working:
  [GOOD] Strong star signal (246028 total, top repo: 235147)
  [GOOD] Active recent commits (0d ago)
  [GOOD] All repos have descriptions

Grades: A (≥80) · B (≥65) · C (≥50) · D (≥35) · F


The 11 scored dimensions

# Dimension Max pts What it measures
1 Profile Completeness 10 Name, bio, avatar, location, website / social link
2 README Quality 15 Top repo README length, code examples, install instructions
3 Star Signal 20 Total stars earned across all repos (log-scaled)
4 Contribution Streak 15 Days since last profile activity
5 Repo Diversity 10 Number of public repos and language breadth
6 Description Quality 10 Fraction of repos with meaningful descriptions
7 Topic Tags 5 Repos tagged with relevant GitHub topics
8 Fork Ratio 5 Proportion of original work vs. forked repos
9 Recent Activity 10 Repos with pushes in the last 90 days
10 Release Cadence 5 Published GitHub Releases on top repos
11 Profile README 5 Presence and quality of the username/username profile README

Total: 100 points.

Dimensions 10 and 11 are new in v0.2.0 and measure signals that indicate a polished, production-ready presence — publishing versioned releases and curating a profile page.


All flags

github-rep analyze-profile <username> [OPTIONS]
Flag Description
--json Machine-readable JSON output (all scores + findings)
--verbose / -v Show all findings including low-priority improvements
--token / -t GitHub PAT (also reads GITHUB_TOKEN env var)
--top N Number of top repos to deep-analyze (default: 10)
--help Show help and exit

JSON output

github-rep analyze-profile gvanrossum --json
{
  "username": "gvanrossum",
  "total": 72,
  "grade": "B",
  "tier": "Active developer",
  "breakdown": {
    "profile_completeness": 8,
    "readme_quality": 12,
    ...
  },
  "findings": [
    {
      "category": "topic_tags",
      "severity": "medium",
      "title": "Most repos have no topic tags",
      "detail": "Missing from GitHub Explore category pages entirely.",
      "fix": "Add topics to your top 3 repos today - GitHub UI, takes 2 minutes."
    }
  ]
}

Caching

Results are cached for 5 minutes under ~/.cache/github-rep/ to avoid hitting rate limits when running the tool multiple times. Delete the cache directory to force a fresh fetch.


FAQ

Do I need a GitHub token? No. Unauthenticated usage gets 60 API requests per hour — enough for a single profile analysis. Set GITHUB_TOKEN to get 5000 requests per hour and avoid hitting limits when comparing many profiles.

How is the score calculated? Each dimension is scored independently against fixed max points (totalling 100). There is no machine learning or relative ranking — the score reflects the absolute presence or absence of each signal.

Can I game the score? You could game every individual metric, but you would also genuinely improve your GitHub presence in the process. The signals are chosen because they correlate with real reputation value.

Why does a well-known developer score lower than expected? Some high-reputation developers (including Linus Torvalds) score below 80 because they skip signals like topic tags, profile READMEs, or GitHub Releases. The tool measures profile hygiene signals, not absolute influence.

How often should I re-run this? After each batch of improvements. Treat it like npm audit — run it, fix the findings, move on.


Contributing

See CONTRIBUTING.md. Bug reports and improvements welcome — open an issue on github.com/basilalshukaili/github-rep.


License

MIT — see LICENSE.

Metadata

Release files for github-rep 0.2.1

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

Source distribution (sdist)

Source distribution for github-rep 0.2.1
File Size Uploaded Provenance
github_rep-0.2.1.tar.gz 21.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for github-rep 0.2.1
File Interpreter ABI Platform
github_rep-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 37.5 kB

Release files / github_rep-0.2.1.tar.gz

Download URL github_rep-0.2.1.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0d220e4c43f6f240c8cc3200d81453b2139026a4e4cc064fca0c77eaac12ea5c
BLAKE2b-256 checksum
How to use checksums
d359a58a2e08cb87c5f79f9909bc7583eeb09a45b9419a7a199b963b1a6e38bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Release files / github_rep-0.2.1-py3-none-any.whl

Download URL github_rep-0.2.1-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c571abf26d3578b3100513d86a3e2d0bdbfc9f31b9591f1951ea32922307e1fe
BLAKE2b-256 checksum
How to use checksums
2493519faf889de9855883b4b56b0247da8f8c26ab5233489d20bd5cd5f55cfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

Security for github-rep 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for github_rep-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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