我正在寻找一种方法来获取特定分支的GitHub存储库中唯一贡献者的数量。
GitHub API允许检索贡献者列表,包含每周添加,提交等数据。这比我需要的多,但我可以从这里提取计数。但是,正如API中所述:
计算存储库统计信息是一项昂贵的操作,因此我们尽可能尝试返回缓存数据。 [...]让工作完成一些时间,然后再次提交请求。
虽然它是可行的,但我宁愿在一次操作中得到结果。
我还可以请求存储库的HTML页面,并尝试解析HTML以提取贡献者的数量,但这似乎不是一个优雅的解决方案。
我研究的另一个选择是使用git log
。即,命令
git log --format='%aN' | sort -u | wc -l
git log --format='%aE' | sort -u | wc -l
git log --format='%cN' | sort -u | wc -l
git log --format='%cE' | sort -u | wc -l
不幸的是,这些命令产生的数字与GitHub上显示的贡献者数量不一致。它们有时会高得多,因为同一个人有多个电子邮件,或者同一个人在其名称的某些变体下提交。例如,对于我正在跟踪的特定存储库,这些命令给了我60到80位作者,而GitHub说有34位贡献者。
还有其他更可靠的选择吗?
答案 0 :(得分:0)
你可能做的是:
https://api.github.com/repos/<user>/<repo>/contributors?page=<number>
然后使用您的命令git log --format=.....
从您当地的仓库中获取贡献者列表。
使用列表1加入列表2,这可以为您提供准确数量的贡献者。