【问题标题】:How to get realtime push events from Github in all public repositories of all users?如何在所有用户的所有公共存储库中从 Github 获取实时推送事件?
【发布时间】:2018-01-30 17:20:45
【问题描述】:

我查看了GET /events,但它返回所有事件,而不仅仅是我感兴趣的推送事件。

我已经阅读了有关 webhook 和 pushEvent 的信息,但可以将其配置为仅存储库,以便在推送到该存储库时收到通知。

但我想为所有用户的所有公共存储库中的所有推送请求获取 webhook 之类的发布请求。类似于Github Archive

【问题讨论】:

  • GET /events 有什么问题而忽略了您不关心的任何事情?
  • 这就是我目前正在做的,但基于id 我假设我错过了很多事件,因为它只返回 30 个事件(?)并且 API 限制为 5000 次调用每小时。更不用说他们的滥用检测机制了。想知道是否有一个用于所有 Github 上所有推送事件的 webhook。
  • 不,没有网络挂钩。 Webhook 是针对每个存储库的,并由存储库所有者配置。 ids 可能存在差距的原因有很多,其中最明显的原因之一是您只获得 public 事件,而 GitHub 有很多客户为私人回购付费。
  • 谢谢。从两个不同的帐户运行GET /events 并合并最终结果似乎更好一些。可能需要更多帐户。我想我违反了 Github T&C。
  • @SnShines FYI gtihub 存档也在使用GET /events,您可以找到源代码here,包括爬虫和大查询

标签: github github-api


【解决方案1】:

虽然API GET /events 仍然是主要解决方案(可能来自不同用户的评论),但有一个important change from August 2018

公共事件 API 延迟五分钟

公共事件 API 现在延迟了 5 分钟
因此,当您查询 API 时,返回的最新事件至少发生在五分钟前。

API 在其他方面保持不变,并继续支持分页和获取多达 300 个事件。没有其他事件 API 受到影响,它们将继续实时传递事件。

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 2019-11-17
    • 1970-01-01
    • 2017-03-28
    • 2013-09-13
    • 2020-12-13
    • 2017-05-02
    • 2016-12-14
    • 2019-07-12
    相关资源
    最近更新 更多