threepointone/klocker
GitHub: threepointone/klocker
一个 TypeScript 脚本,通过 GitHub API 统计用户每日代码行变动并生成 CSV 数据与可视化折线图。
Stars: 2 | Forks: 0
# GitHub 个人主页代码行变动图
本项目包含一个 TypeScript 脚本,用于估算用户在过去 12 个月(或您选择的任意时间段)内**每天的代码行变动数**(`新增 + 删除`)。图表将每日的变动绘制为折线,并在每周的开始处用红色标记标出该周的总计。
默认情况下,名为 `package-lock.json` 的文件变动将不计入总数。
## 功能说明
1. 尝试从用户的贡献图中读取仓库(GraphQL)。
2. 如果 GraphQL 不可用,则回退到用户拥有的仓库。
3. 获取该用户在每个仓库中对应时间范围内的 commit。
4. 获取 commit 统计数据并按天进行汇总。
5. 生成以下文件:
- `weekly_churn.csv`(每天一行)
- `weekly_churn.png`(带有每周总计标记的每日折线/面积图)
## 用法
```
bun install
```
运行:
```
bun start --
```
推荐方式(以避免严格的速率限制):
```
export GITHUB_TOKEN=ghp_your_token_here
bun start --
```
实用参数:
```
bun start -- \
--months 6 \
--csv weekly_out.csv \
--plot weekly_out.png \
--max-repos 100 \
--sleep-between-calls 0.05
```
跳过 PNG 输出:
```
bun start -- --no-plot
```
## 注意事项 / 限制
- 这是基于 GitHub API 的 commit 统计数据进行的估算,按天(UTC)分组。每周标记的总计使用 UTC 时区下周一作为每周的开始。
- 大型历史记录可能会快速消耗 API 配额,因为 commit 统计需要针对每个 commit 进行详细的调用。
- 如果没有配置 `GITHUB_TOKEN`,脚本很可能会触及速率限制。
- 对于拥有大量仓库/commit 的高频用户,您可能需要缩小范围或在运行时加入暂停。
标签:Bun, TypeScript, 代码统计, 安全插件, 开发者生产力, 数字取证, 自动化攻击, 自动化脚本