这个项目能做什么
RepositoryScanner 是一款 GitHub 账户分析器,它利用 GitHub API 读取公开和私有仓库的语言统计数据,然后导出一个显示顶尖语言的 SVG 卡片。根据 README,GitHub 的语言 API 返回的是每种语言的代码字节数,卡片上的百分比是基于这些字节大小而非原始行数计算的。生成的卡片显示了按总代码大小排列的前六种语言以及贡献统计:总贡献、当前连续天数和最长连续天数。它采用了受 Kanagawa paper-ink 启发的主题,并设计为通过 GitHub Actions 每周自动更新。
推荐的设置步骤是 fork 该仓库,创建一个具有 repo 和 read:user 权限范围(如果仅关注公开仓库,则使用 public_repo)的 GitHub 个人访问令牌,添加 GH_TOKEN、GITHUB_USERNAME 以及可选的 EXCLUDED_LANGS 仓库密钥,然后手动运行一次 Update Language Stats 工作流。工作流文件位于 .github/workflows/update-chart.yaml,配置为在 UTC 时间每周日 00:00 运行,将更新后的 assets/languages.svg 提交回 main 分支,并支持按需运行。可以通过编辑该工作流文件中的 cron 行来更改计划。生成的 SVG 可以使用 raw.githubusercontent.com URL 嵌入到个人资料 README 中,并可通过添加如 ?v=1 的可选查询参数来绕过浏览器缓存。
对于本地开发,README 推荐使用 Python 3.10+(首选 3.11)。核心依赖项为 requests 和 python-dotenv。配置可以通过 .env 文件或 shell 环境变量提供。在仓库根目录下运行 python scripts/fetch_languages.py 即可生成 assets/languages.svg。Kanagawa 调色板和每种语言的颜色在 scripts/colors.py 中定义,而 SVG 布局细节在 scripts/fetch_languages.py 内部处理。README 还指出 GITHUB_USERNAME 是主变量,但为了向后兼容也支持 USERNAME。如果未设置 GH_TOKEN,则仅分析公开仓库,且适用 GitHub 的未认证速率限制。
安全与隐私说明指出,该工具使用 GitHub API 读取仓库列表和每个仓库的语言统计数据,但不会读取实际的代码内容。令牌在本地开发时从本地 .env 或环境变量中读取,在 Actions 中从 GitHub Secrets 读取,且绝不应被提交。故障排除部分涵盖了 401 Unauthorized 和 API 错误、由于过滤 fork、排除语言、令牌权限或速率限制导致语言数据缺失,以及由于 Actions 被禁用、工作流路径错误、YAML 无效或更改不在预期分支上而导致工作流未运行的情况。该项目采用 MIT 许可,并声明其灵感来自 anuraghazra/github-readme-stats,Kanagawa 颜色主题则受 rebelot/kanagawa-paper.nvim 的影响。
评论
0 评分人数达到10人后显示
登录后参与讨论。