Skip to content

feat: 贡献数据支持官方 GraphQL 渠道并保留兜底 - #35

Merged
flycran merged 5 commits into
mainfrom
feat/contributions-driver
Nov 6, 2026
Merged

flycran merged 5 commits into
mainfrom
feat/contributions-driver

Conversation

@flycran

@flycran flycran commented Nov 6, 2026

Copy link
Copy Markdown
Owner

变更

  • 贡献数据拆成两个驱动:
    • fetchContributionsFromGraphql:GitHub 官方 contributionsCollection,处理 HTTP 错误、200 + errors 数组、用户不存在
    • fetchContributionsFromCalendar:原有 gh-calendar 公共 API
  • 提供 GITHUB_TOKEN 时优先官方渠道,未提供时回落到 gh-calendar(fetchContributions 内选择)
  • 两驱动统一一年窗口与返回结构;gh-calendar 首周补齐的日期裁掉,total 按窗口重新累计
  • action 新增可选 token 输入,main.ts 读取后写入环境变量
  • 新增 scripts/compareContributions.ts(bun run compare:contributions)做两驱动严格相等比较,不进单测

验证

  • bun test:112 pass / 0 fail
  • biome check .、tsc --noEmit 通过
  • dist/ 已重建

两驱动比较结果

除 2026-03-07、2026-03-09 两天的 count 外逐字段相等(53 周、366 天、total 578 均一致)。差异来自 gh-calendar 上游缓存与官方实时数据不同,重复请求稳定复现,驱动层无法消除;因此比较脚本会以退出码 1 报告不等。

提供 GITHUB_TOKEN 时优先调用 GitHub 官方 contributionsCollection,未提供时回落到无需认证的 gh-calendar。两个驱动统一为一年窗口与同一数据结构,并新增严格相等比较脚本;action 新增可选 token 输入。
@flycran
flycran force-pushed the feat/contributions-driver branch from 46bffe7 to d9aa6c3 Compare November 6, 2026 08:54
@flycran
flycran merged commit 9e779dc into main Nov 6, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant