我使用的是GitHub API v3。我想将存储库中的提交筛选为特定作者提交的提交。我使用以下API来做这件事。虽然它并不总是有效的。
https://api.github.com/repos/:owner/:repo/commits?author=:author&page=1&per_page=100
例如对于下面的一个。
https://api.github.com/repos/mtreinish/linux/commits?author=mtreinish&page=1&per_page=100
在这种情况下,它将返回以下结果。
{
"message": "Server Error",
"documentation_url": "https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository"
}
你能帮我解决这个问题吗。
您的请求从GitHub收到500内部服务器错误。这意味着服务器遇到了某种错误,无法为您的请求提供服务。
在这种特殊的情况下,您遇到的似乎是超时:也就是说,您的请求无法在合理的时间内得到满足,因为历史记录太大,并且该作者的提交不够常见,无法提供所需数量的答案。GitHub受限于这样一个事实,即历史遍历是一个单线程操作,Git只能这么快完成。
您可以联系GitHub支持,让他们看看是否有什么可以做的,但实际上,您最好克隆存储库,并使用git
命令行工具执行请求。
PyDriller是处理此问题的最佳方法之一。我使用了它并解决了问题。