Command line tools for GitHub repo statistics
Project description
ghrepo-stats
Have you ever wondered how the number of stargazers or the number of open issues has changed over time for your (or any) GitHub repository? I did, so I wrote this small command line tool to do this.
ghrepo-stats uses pygithub to collect some statistics from a specific repository using a command line tool and show it using matplotlib or write it to a csv file.
Features
The following sub-commands are supported:
- stars: shows the number of stargazers over time (caveat: stargazers that have removed their star are not shown, as the info is not available)
- issues: shows the number of currently open issues over time
- prs: shows the number of currently open pull requests over time
- commits: shows the number of commits over the last year
- codesize: shows the change of the code size over time measured by the number of added and deleted lines
- issue-life: shows the average life time in days of issues over time (sampled once a week)
- pr-life: shows the average life time in days of issues over time (sampled once a week)
Caution: Using sub-commands related to issues and PRs on repositories with many (open or close) issues will take a lot of time due to API access limitations.
Installation
If you want to try it, you can install it from PyPi:
pip install ghrepo-stats
Or you can install the current master from GitHub:
pip install git+https://github.com/mrbean-bremen/ghrepo-stats
Usage
To use this, you need a
personal access token
able to read public repositories for your GitHub account. The user name and
token is expected to be found in the file ghrepo-stats.ini
, either in the
repository root, or in your home path.
The contents should be in the form:
[auth]
username = my-github-username
token = 123456789abcdef0123456789abcdef012345678
To get usage information you can now type:
$ show-ghstats -h
usage: show-ghstats [-h] [--verbose] [--csv CSV] sub_command repo_name
Shows GitHub repo statistics
positional arguments:
sub_command The kind of statistics to show. Possible values: 'issues',
'prs', 'stars', 'commits', 'codesize', 'issue-life', 'pr-
life'.
repo_name Full repository name in the form <repo_owner>/<repo_name>.
optional arguments:
-h, --help show this help message and exit
--verbose, -v Outputs diagnostic information
--csv CSV Write the output into a csv file with the given file path
So, for example, to get a star plot of a specific repository, you can write:
$ show-ghstats stars "my-github-username/my-repo"
If you want to have the numbers saved in a csv file instead to play around with the numbers you can write:
$ show-ghstats stars "my-github-username/my-repo" --csv=my_repo-issues
This will write a file my_repo-issues.csv
with the numbers (date+time /
number of issues) in the current path.
Examples
Get some measure of popularity change by showing the number of stargazers over time (note: stars that have been retracted are not counted):
$ show-ghstats stars "jmcgeheeiv/pyfakefs"
Check how fast issues are handled over time. An increasing curve means ever more unresolved issues (also depends on the policies of the specific project - some projects leave issues open indefinitely, while others close outdated issues):
$ show-ghstats issue-life "jmcgeheeiv/pyfakefs"
Check how fast issues are handled by showing how many issues have been open over time:
$ show-ghstats issues "vvvv/svg"
See how the code size changed over time measured in code additions/deletions:
$ show-ghstats codesize "pytest-dev/pytest"
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file ghrepo-stats-0.3.0.tar.gz
.
File metadata
- Download URL: ghrepo-stats-0.3.0.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 988959f88cb37e9208e4606f1ae52c8e8b1a89ec71b3af4b25442f1c8c76def4 |
|
MD5 | 5b9a109f1e71a2280dd50e7e0b3401ac |
|
BLAKE2b-256 | 48bc6b8829034dee92f1c8027304efd67337c5459bba288f1fb1176fe069514e |
File details
Details for the file ghrepo_stats-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: ghrepo_stats-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e905f32c014d446cbee3e8a2039b620abe128cdd7a2198515681872f2af1bd2 |
|
MD5 | 7f6b1906e1a791150e331d48c11cc6df |
|
BLAKE2b-256 | 6f37c2c54cad431a3838df23fdff816b01740a04eff805ba8b86563e01db432c |