GitHub 统计可视化
使用 GitHub Actions 生成 GitHub 用户和仓库统计的可视化。可视化内容可以包括私有仓库的数据,以及您贡献但不拥有的仓库数据。
生成的图像会自动在 GitHub 浅色主题和深色主题之间切换。
背景
当有人查看 GitHub 上的个人资料时,通常是因为他们对该用户的开源项目和贡献感兴趣。遗憾的是,用户的星标、分支和置顶仓库并不一定反映他们对私有仓库的贡献。同样,这些数据也无法全面展示用户在当前年度之外的总体贡献。
本项目旨在使用 GitHub API 收集各种个人资料和仓库统计数据。然后生成可以在仓库 README 或用户的个人资料 README 中显示的图像。
由于项目在 GitHub Actions 上运行,无需服务器即可定期重新生成带有更新统计数据的图像。同样,由于用户通过 GitHub Actions 自行运行分析代码,他们可以使用自己的 GitHub 访问令牌来收集外部服务无法访问的私有仓库的统计数据。
免责声明
如果项目使用具有足够权限读取私有仓库的访问令牌,可能会在错误消息中泄露这些仓库的详细信息。例如,用于异步 API 请求的 aiohttp
库可能会在异常中包含请求的 URL,这可能会泄露私有仓库的名称。如果 aiohttp
导致异常,该异常将可在仓库分支的 Actions 选项卡中查看,任何人都可能看到一个或多个私有仓库的名称。
由于 GitHub 统计 API 的一些问题,在某些情况下它会返回不准确的结果。具体来说,仓库浏览次数统计和修改的总代码行数可能会有些不准确。意外的是,随着时间的推移,随着 GitHub 缓存您仓库的统计数据,这些值会变得更加准确。此外,由于 API 返回结果的限制,最后一次贡献超过一年的仓库可能不会包含在统计数据中。
有关不准确性的更多信息,请参见问题 #2、#3 和 #13。
安装
-
按照此处的说明创建个人访问令牌(不是默认的GitHub Actions令牌)。个人访问令牌必须具有以下权限:
read:user
和repo
。生成令牌时请复制它——如果丢失,您将不得不重新生成令牌。- 一些用户报告说,个人访问令牌可能需要几分钟才能生效。更多信息请参见#30。
-
点击这里创建此仓库的副本。注意:这与复刻副本不同,因为它会全新复制所有内容,不包含庞大的提交历史。
-
转到您复制的仓库的"Secrets"页面。如果这是您副本的README,点击此链接转到"Secrets"页面。否则,转到新创建仓库的"Settings"标签,然后转到"Secrets"页面(左下角)。
-
创建一个名为
ACCESS_TOKEN
的新密钥,并将复制的个人访问令牌粘贴为其值。 -
可以通过添加其他仓库密钥来更改报告的统计类型。
- 要忽略某些仓库,将它们(以owner/name格式,如
jstrieb/github-stats
)以逗号分隔添加到一个新的密钥中,名称为EXCLUDED
。 - 要忽略某些语言,将它们(以逗号分隔)添加到一个名为
EXCLUDED_LANGS
的新密钥中。例如,要排除HTML和TeX,可以将值设置为html,tex
。 - 要仅显示"拥有"的仓库的统计信息而不包括有贡献的复刻,在主工作流程的
env
头部下添加一个名为EXCLUDE_FORKED_REPOS
的环境变量,值为true
。 - 这些其他值默认作为密钥添加,以防止泄露私有仓库的信息。如果您不担心这一点,可以直接在Actions工作流程本身中更改这些值。
- 要忽略某些仓库,将它们(以owner/name格式,如
-
转到Actions页面,然后按屏幕右侧的"Run Workflow"首次生成图像。
- 图像将每24小时自动重新生成,但也可以通过这种方式手动运行工作流程重新生成。
-
查看在
generated
文件夹中创建的图像。 -
要将您的统计信息添加到GitHub个人资料README中,请将以下代码行复制并粘贴到您的markdown内容中。将
username
值更改为您的GitHub用户名。![](https://raw.githubusercontent.com/username/github-stats/master/generated/overview.svg#gh-dark-mode-only) ![](https://raw.githubusercontent.com/username/github-stats/master/generated/overview.svg#gh-light-mode-only)
![](https://raw.githubusercontent.com/username/github-stats/master/generated/languages.svg#gh-dark-mode-only) ![](https://raw.githubusercontent.com/username/github-stats/master/generated/languages.svg#gh-light-mode-only)
-
链接回此仓库,以便其他人也可以生成自己的统计图像。
-
如果您喜欢这个项目,请为它加星!
支持项目
您可以通过以下几种方式支持此项目:
- 为仓库加星(并在GitHub上关注我以获取更多内容)
- 在Twitter、Reddit和Hacker News等网站上分享和投票
- 报告您发现的任何错误、故障或错误
这些行为激励我继续分享我的创作,并提供我的工作受到赞赏的验证!它们也帮助我改进项目。提前感谢!
如果您坚持要花钱表示支持,我鼓励您向以下组织之一慷慨捐赠。通过倡导互联网自由,这些组织帮助我感到舒适地在网上公开发布作品。
相关项目
- 受到改进 anuraghazra/github-readme-stats 项目的愿望启发
- 使用 GitHub Octicons 来精确匹配 GitHub 用户界面