Github V3 API:列出贡献者。

18
我已阅读以下文档(https://developer.github.com/v3/repos/#list-contributors),以列出我在其中工作的存储库的贡献者,并且我发现一个提交多次的人没有出现,而我自己只有3个贡献,虽然我推送了我们301次提交中的大部分。
我不太明白这个端点返回什么,但它看起来并不准确。该文档对此并没有很详细的介绍,是否有人知道可能解释这一情况的信息?

1
你们有超过500个贡献者吗?将“anon”设置为“true”会返回更多结果吗? - TriskalJM
@TriskalJM,你的第二个问题让我觉得你走在了正确的轨道上。我会包含我从API支持那里得到的答案。 - Dici
2个回答

29

我向Github API的支持团队提交了我的问题,他们给了我一个惊人详细的答案。这是缩短版:

看起来你丢失的提交是由未与你的GitHub帐户相关联的电子邮件地址所创建的。你可以通过将“.patch”添加到提交URL的结尾来找到缺失的电子邮件地址,然后查看“From:”行。一旦你有了电子邮件地址,可以按照这些说明将其链接到你的个人资料中:

https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user

链接你的电子邮件地址到你的账户之后,任何有效的缺失贡献会被补全,新的贡献也应该自动显示。

例如,当我查看Projet-merou的提交历史记录:

https://github.com/jxw1102/Projet-merou/commits/master

选择最新的使用你的GitHub用户名作为作者的提交,并像下面这样在URL中添加 .patch :

https://github.com/jxw1102/Projet-merou/commit/f5bf30243ab99efc40802d3d78c08e49839ec9c9.patch

我在第二行看到这个:

From: Dicee courtinot.david@orange.fr

添加该电子邮件将会补充任何缺失的有效贡献。之后,调用API应该显示预期结果。

API端点:贡献者和贡献者统计

我已经为每个端点编写了一些说明。如果您有任何问题,请告诉我!

/repos/:owner/:repo/contributors

当您调用GET /repos/:owner/:repo/contributors时,GitHub API将列出指定存储库的贡献者,并按每个贡献者的提交次数降序排列。由于性能原因,贡献者数据被缓存。此端点可能返回几个小时前的信息。Git贡献者通过作者电子邮件地址进行标识。此API尝试通过所有关联电子邮件地址,将贡献计数分组到GitHub用户中。出于性能原因,仅将存储库中前500个作者电子邮件地址链接到GitHub用户。其余的将显示为没有关联GitHub用户信息的匿名贡献者。

如果您带有指定的anon=1调用此端点,则API将返回默认分支上所有提交的计数,包括未与GitHub上的任何用户关联的提交。以下是一个示例:

https://api.github.com/repos/jxw1102/Projet-merou/contributors?anon=1

当没有像这样指定anon=1时:

https://api.github.com/repos/jxw1102/Projet-merou/contributors

请注意,结果仅显示与某些GitHub用户关联的提交,并且不计算合并提交。

/repos/:owner/:repo/stats/contributors

当您调用GET /repos/:owner/:repo/stats/contributors时,GitHub API将返回具有添加、删除和提交次数的贡献者列表。总计表示贡献者撰写的提交总数。

有帮助吗?

祝一切顺利,
Francis
@francisfuzz
GitHub支持


看起来这个API端点对于不太出名的公共存储库并不是非常可靠,因为它往往会返回一个空对象作为响应的主体,而不是完整的贡献统计数据。重试几次并等待几秒钟最终会得到预期的结果。不确定背后发生了什么,但这值得注意,因为看起来GitHub并没有索引所有存储库的统计信息。 - Amin NAIRI

0

我遇到了同样的问题,在将devel合并到master后,有些贡献者消失了。GitHub支持回复:

这是预期行为-请阅读该端点的文档:

https://developer.github.com/v3/repos/#list-contributors

“此端点可能返回几个小时前的信息,因为GitHub REST API v3缓存贡献者数据以提高性能。”

因此,您可能需要等待几个小时以获取更新的数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接