跳转到主要内容

GitHub仓库统计的命令行工具

项目描述

ghrepo-stats PyPI版本

你是否曾想知道你的或任何公共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"

stars

检查随时间处理问题的方法。有两种可能性

  • 在任何时间点显示打开问题的数量
$ show-ghstats issues "svg-net/svg"

issues

  • 显示问题随时间变化的平均寿命。曲线上升表示越来越多的问题未得到解决(也取决于特定项目的政策 - 一些项目无限期地保留问题,而其他项目则关闭过时的项目)
$ show-ghstats issue-life "pytest-dev/pyfakefs"

issue-lifetime

通过检查代码大小随时间的变化来获取一些活动度量(以代码添加/删除来衡量)

$ show-ghstats codesize "pytest-dev/pytest"

codesize

检查哪些知名软件包依赖于您的存储库

$ 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 (13.9 kB 查看哈希值)

上传时间

构建分布

ghrepo_stats-0.5.4-py3-none-any.whl (13.9 kB 查看哈希值)

上传时间 Python 3

支持者