用途:在任意 GitHub 仓库的 README 中嵌入“Stargazers over time”图表。由于 GitHub 已把 /stargazers 接口限制为仅仓库管理员与协作者可访问,未认证请求会返回 Requires authentication,导致第三方实时图表服务失效;该技能改为用认证令牌自行生成图表并提交静态 SVG。
主要能力:提供 scripts/generate_star_history.py,以认证方式抓取 stargazers 并渲染支持浅色/深色主题的 SVG;提供 .github/workflows/star-history.yml,按每周 cron(周一 04:00 UTC)及手动触发重新生成并提交 docs/star-history.svg;README 引用本地 SVG。
使用方式:创建 scripts、.github/workflows、docs 目录并复制脚本与工作流;安装 requests。本地生成时运行 GITHUB_TOKEN=$(gh auth token) python scripts/generate_star_history.py,输出 docs/star-history.svg。README 中添加指向本地 SVG 的图片与链接目标。最后 git add 相关文件并提交推送。可在 GitHub Actions 的 “Update Star History” 手动触发立即刷新。
可配置项:STAR_HISTORY_OUTPUT(默认 docs/star-history.svg)、STAR_HISTORY_REPO(owner/name),脚本会依次从 STAR_HISTORY_REPO、GITHUB_REPOSITORY、origin 远程解析仓库;颜色与尺寸可改脚本中的 .line、.area、.dot CSS 与 WIDTH/HEIGHT 常量;刷新频率可改 cron。
限制:无需配置密钥,工作流使用自动 GITHUB_TOKEN;私有仓库只要令牌可读即可用。首次运行需分页抓取全部 stargazers,星标数很多时可能耗时几分钟。脚本仅依赖 requests 与 Python 标准库。