从 GitHub API 聚合仓库、提交、语言数据,以跨仓库视角展示开发活跃度(提交热力图、活跃时段、语言分布、仓库投入对比)。
- 后端:Python 标准库(http.server + sqlite3),通过
ghCLI 拉取 GitHub 数据 - 前端:原生 HTML/CSS/JS + ECharts(本地 vendor 内嵌,离线可用),无构建步骤
- 存储:SQLite 本地缓存
# 1. 初始化数据(拉取 GitHub 账号的活动数据)
python -m ghactivity collect --user nsfxdyj
# 2. 抓取各仓库提交历史(默认只看最近推送的 10 个仓库;加 --deep 遍历全部仓库)
python -m ghactivity collect --user nsfxdyj --commits
python -m ghactivity collect --user nsfxdyj --commits --deep
# 3. 启动本地服务
python -m ghactivity serve --port 8000打开 http://127.0.0.1:8000 查看仪表盘。
采集数据来自 GitHub REST API(经 gh api 调用):/users/{user}/repos、/repos/{owner}/{repo}/commits 等。数据写入本地 SQLite 缓存,之后分析不重复请求。
- 时间按
Asia/Shanghai(UTC+8)归组展示,与本地时段一致。 - 统计只包含自己拥有的仓库(fork 的上游项目不计入,避免数据污染)。
--deep全量采集会分页拉取每个仓库的全部提交历史,数据量大时耗时较长。
- 需要本机已安装
ghCLI 并登录(gh auth status验证)。 - 私有仓库权限取决于 gh 的 token 权限。