You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单次GitHub API调用批量查询邮箱对应的GitHub用户名?

批量通过邮箱查询GitHub用户名的最优方案

手里有几百个从git log里导出的邮箱,想对应到GitHub用户名,不想挨个调用API浪费次数?之前试的两个方案都不顶用——要么批量查用户但不支持邮箱维度,要么只能单个邮箱查没法批量。给你两个实际能用的思路:

1. 用GitHub GraphQL API做批量查询

GitHub的REST API确实没法批量按邮箱查用户,但GraphQL API可以一次请求里塞多个邮箱查询。你可以把邮箱分成20-30个一组,每组发一个GraphQL请求,几百个邮箱也就几次请求搞定。

举个查询示例(记得替换成你的邮箱和个人访问令牌):

query BatchEmailLookup {
  alice: user(email: "alice@example.com") { login }
  bob: user(email: "bob@example.com") { login }
  charlie: user(email: "charlie@example.com") { login }
  # 可以继续加更多邮箱查询,别让请求太长就行
}

注意事项:

  • 必须用个人访问令牌(PAT)认证,且令牌需要有user:email权限,否则无法通过邮箱匹配用户
  • 每个请求别塞太多邮箱,避免超过GraphQL的查询长度限制,一般20-30个一组比较稳妥
  • 返回结果里如果某个邮箱没有对应GitHub账号,会返回null,记得处理这种无匹配的情况

2. 本地缓存已查询的映射

把已经查到的「邮箱-用户名」对应关系存在本地文件(比如JSON或CSV)里,每次查询前先比对本地数据,只把没查到的新邮箱拿去调用API,能大幅减少重复查询的次数。

另外要注意GitHub的API速率限制:GraphQL API每小时允许5000次请求,分组查询的话完全够用,不用担心触发限制。

内容的提问来源于stack exchange,提问作者Daniel Porteous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:07:31