【问题标题】:Filter commits by a unique user按唯一用户过滤提交
【发布时间】:2020-10-27 01:39:57
【问题描述】:

我正在使用 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"
}

你能帮我解决这个问题吗?

【问题讨论】:

  • 响应中的 HTTP 状态代码是什么?
  • 密码好像是500。
  • HTTP 提供状态码作为请求的一部分,以及标头。如果您使用的是curl,则可以使用-D - 查看此信息。

标签: github commit github-api git-commit


【解决方案1】:

您的请求从 GitHub 收到 500 内部服务器错误。这意味着服务器遇到了某种错误,无法处理您的请求。

在这种特殊情况下,您遇到的似乎是超时:也就是说,您的请求无法在合理的时间内得到满足,因为历史记录太大并且该作者的提交不够普遍它可以提供所需数量的答案。 GitHub 受限于历史遍历是单线程操作,Git 只能做到这么快。

您可以联系 GitHub 支持并询问他们是否可以做任何事情,但实际上,您最好克隆存储库并使用 git 命令行工具执行您的请求。

【讨论】:

  • 我正在挖掘多个存储库,并且所选存储库是在运行时动态定义的。所以,我正在使用在线存储库。
【解决方案2】:

PyDriller 是可以处理此问题的最佳方法之一。我使用它并解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2017-07-30
    相关资源
    最近更新 更多