Skip to main content

Examine a GitHub user's profile, and help quickly decide how much to invest in their contributions.

Project description

gh-profiler

Like many, I've gotten waves of open source contributions where many of the new issues and PRs aren't worth engaging with. But it takes me a bit of time to sort through each of them.

People like to say that code should "speak for itself", but I've found that looking at a GitHub user's profile has been more helpful in making a quick determination about how much time to invest in the issue or PR. I typically look at a few quick things:

  • Has the person made an unusually high number of PRs lately?
  • Have a significant portion of these PRs been closed without merging?
  • Have they opened an excessive number of issues?
  • How old is the account?
  • Is there any meaningful information on their profile?

I don't make a final decision about PRs and issues based on the answers to these questions, but many times I see enough red flags here that I have a good idea not to spend much time evaluating the contribution. (I'm mostly talking about PRs and issues where there's been no prior discussion, and there's a lot of text or changes in the PR/issue to review if I'm going to take it seriously.)

The goal of this project is to get a quick snapshot of this kind of information, without having to do a bunch of clicking on GitHub. The output is a summary of what's found, with a quick visual cue as to which factors support investing time in the PR/issue, and which factors suggest it's better off being closed and ignored. I have no interest in calculating some kind of trust score, or any other single number.

Running as a tool

If you have uv installed, you can run this as a tool against any GitHub user:

$ uvx gh-profiler ehmatthes

GitHub user: ehmatthes
  🟢 Account age: 5058 days

  🟢 Profile information:
      name: Eric Matthes
      company:
      blog: https://www.mostlypython.com
      location: western North Carolina
      email: ehmatthes@gmail.com
      bio:

  🟢 ehmatthes has opened fewer than 10 PRs in the last 21 days.

Installing and then running

You can also install the project, and then run the bare gh-profiler command:

(.venv) $ pip install gh-profiler
Installed 1 package in 4ms
 + gh-profiler==0.1.0
(.venv) $ gh-profiler ehmatthes

GitHub user: ehmatthes
  🟢 Account age: 5058 days

  🟢 Profile information:
      name: Eric Matthes
      company:
      blog: https://www.mostlypython.com
      location: western North Carolina
      email: ehmatthes@gmail.com
      bio:

  🟢 ehmatthes has opened fewer than 10 PRs in the last 21 days.

When you've installed the project, you can also run it as a module:

$ python -m gh_profiler <username>

Maintaining

Add/ modify a requirement

  • Add or modify a requirement by modifying pyproject.toml, or running uv add <package>.
  • Then run uv lock.

New releases

Update changelog and bump version, then:

$ rm -rf dist/*
$ uv build
$ uv publish

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

gh_profiler-0.1.1.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

gh_profiler-0.1.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file gh_profiler-0.1.1.tar.gz.

File metadata

  • Download URL: gh_profiler-0.1.1.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gh_profiler-0.1.1.tar.gz
Algorithm Hash digest
SHA256 625e39ab44097289c6a10de33313e765834c81359574e8f546f07fc083000452
MD5 c67967bcd47d2606103e3dce42b29e95
BLAKE2b-256 4061cbc6801b00b3da957b1d1dce03f6723f9fcf657f42db385483d9587c86de

See more details on using hashes here.

File details

Details for the file gh_profiler-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gh_profiler-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for gh_profiler-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b0efb4102a29f8d709a04b1295acfa4aa0f57a97e602cb9afe1bb2e205f333a2
MD5 bcc3a9fafaf040d3165d7654136aeb1c
BLAKE2b-256 92f21aacde3557771754e03e2f31d077a68d20957254c0ff1b16f82e4ba3ae1f

See more details on using hashes here.

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