如何从Git Commit中获取提交作者的GitHub登录用户名?
可行解决方案如下:
方案1:使用仓库级提交查询接口(有提交哈希时优先选择)
你之前调用的是Git数据库层面的提交查询接口,返回的是Git原生存储的提交信息,不会关联GitHub平台的用户数据。替换为仓库维度的提交查询接口即可直接获取绑定的GitHub登录用户名:
- 调用路径:
GET /repos/{仓库所有者}/{仓库名}/commits/{commit哈希值} - 返回结果里的
author.login字段就是目标登录用户名,直接添加@前缀即可实现提及效果。
方案2:通过提交邮箱搜索关联用户(仅持有邮箱时使用)
如果只有提交者的邮箱信息,可以调用GitHub用户搜索接口,匹配公开绑定了该邮箱的账号:
- 调用路径:
GET /search/users?q={提交者邮箱}+in:email - 当返回结果的
total_count大于0时,取第一条结果的login字段即可作为登录用户名使用。
补充说明
如果提交者未将提交所用邮箱绑定到GitHub账号,或是绑定的邮箱设置为私有不对外公开,两种方案都无法查询到对应用户名,此时可以直接展示提交者的显示名称作为兜底。
大批量查询时建议在请求中携带认证信息,避免触发GitHub API速率限制。
内容的提问来源于stack exchange,提问作者Jonathan Rioux
相关产品推荐
相关产品推荐

