GitHub仓库统计的命令行工具
项目描述
ghrepo-stats 
你是否曾想知道你的或任何公共GitHub仓库的关注者数量或未解决的问题数量随时间如何变化?我就是这样想的,所以我编写了这个小命令行工具,它将显示这些数据。
ghrepo-stats 使用 pygithub 通过命令行工具从特定仓库收集一些统计信息,并使用 matplotlib 显示或写入csv文件。
功能
支持以下子命令
- stars: 显示随时间变化的关注者数量(注意:已取消星标的关注者不会显示,因为信息不可用)
- issues: 显示随时间变化的开 Issues 数量
- prs: 显示随时间变化的开放 Pull Requests 数量
- commits: 显示过去一年内的提交数量
- codesize: 显示随时间变化的代码大小变化,通过添加和删除的行数来衡量
- issue-life: 显示随时间变化的 Issues 平均生存天数(每周采样一次)
- pr-life: 显示随时间变化的问题平均寿命(以天为单位)(每周采样一次)
- 依赖项:按星标数量排序的列表,显示哪些存储库和软件包依赖于您的存储库
运行时间
在具有许多(打开或关闭)问题的存储库上使用与问题和PR相关的子命令可能需要很长时间,因为第一次在特定存储库上使用时由于API访问限制而可能会花费大量时间。随后的调用将快得多,因为结果被缓存到文件系统中(作为主目录中的.ghrepo-stats
子目录中的json文件)。通常与问题/PR无关的命令不会花费很长时间,除非是依赖项 - 这些当前未缓存,如果数量很多(例如数千个),则需要足够的时间(长达几分钟)。
安装
如果您想尝试它,可以从PyPi安装
pip install ghrepo-stats
或者您可以从GitHub安装当前主分支
pip install git+https://github.com/mrbean-bremen/ghrepo-stats
使用方法
要使用此功能,您需要一个GitHub帐户和一个能够读取您GitHub帐户公共存储库的个人访问令牌。用户名和令牌应位于ghrepo-stats.ini
文件中,该文件位于存储库根目录或您的家目录中。
内容应如下所示
[auth]
username = my-github-username
token = 123456789abcdef0123456789abcdef012345678
要获取使用信息,现在可以输入
$ 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', 'dependents'.
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
--packages Only for dependents: get dependent packages instead of repositories
--min-stars MIN_STARS
Only for dependents: limits the output to dependents with at least
the given number of stargazers.
因此,例如,要获取特定存储库的星标图,可以编写
$ show-ghstats stars "my-github-username/my-repo"
如果您想将数字保存到csv文件中以便进行数字游戏,可以编写
$ show-ghstats stars "my-github-username/my-repo" --csv=my_repo-issues
这将在一个名为my_repo-issues.csv
的文件中写入当前路径中的数字(日期+时间/问题数量)。
依赖项
获取依赖存储库的方式与其他命令略有不同,因为依赖存储库不是通过GitHub API提供的,也没有统计信息可供显示。相反,数据是通过网络爬取收集的,并输出到CSV文件中,如果指定则输出到标准输出。还有两个特定参数(--packages
和--min-stars
)如上所示。按星标数量排序是为了首先显示最知名的存储库。目前没有进行缓存,因此根据依赖存储库的数量,调用可能需要很长时间。
示例
通过显示随时间变化的星标数量来获取一些流行度的变化度量(注意:不计入已撤回的星标)
$ show-ghstats stars "pytest-dev/pyfakefs"
检查随时间处理问题的方法。有两种可能性
- 在任何时间点显示打开问题的数量
$ show-ghstats issues "svg-net/svg"
- 显示问题随时间变化的平均寿命。曲线上升表示越来越多的问题未得到解决(也取决于特定项目的政策 - 一些项目无限期地保留问题,而其他项目则关闭过时的项目)
$ show-ghstats issue-life "pytest-dev/pyfakefs"
通过检查代码大小随时间的变化来获取一些活动度量(以代码添加/删除来衡量)
$ show-ghstats codesize "pytest-dev/pytest"
检查哪些知名软件包依赖于您的存储库
$ show-ghstats dependents pydicom/pydicom --packages --min-stars=1000
fastai/fastai 23163
activeloopai/deeplake 5120
pypa/sampleproject 4500
openvinotoolkit/openvino 3890
Project-MONAI/MONAI 3675
Project-MONAI/MONAI 3675
microsoft/presidio 1906
Image-Py/imagepy 1209
项目详情
下载文件
下载适用于您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
ghrepo-stats-0.5.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d1db8796cc6d57a673a31a5424e73c2a31ab872e17f66359f3551671fbf01a1c |
|
MD5 | 06895b6fb0bd6f1026f19413b730cd4d |
|
BLAKE2b-256 | b03ef87402d1580567e5fa51161bde2786e4bf076add61d8e462f1e55fe029b8 |
ghrepo_stats-0.5.4-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1b48549342ea84d77fb9720971088643cfccf0232d69d99e136dae22999a26e3 |
|
MD5 | 9b9988be52ad68ba7cf72d94ba83e77a |
|
BLAKE2b-256 | cb29733b5eaa76c99660112b5fe51f95ee5427ac5d4c95bd93b1ca54014bc88f |