Repository-Webhooks 与 Github Apps - 使用哪个?

Jan*_*zki 6 github webhooks github-api

用例:我当前的用例是对新问题做出反应并发布自动评论。这主要针对一两个存储库。

因此我猜想可以使用存储库上的Webhook以及Github 应用程序。尽管 Github 在这两个方面都有一些非常好的文档,但我不确定该使用哪一个来满足我的场景。

比较它们有什么优点/缺点?

  • Github Apps 的一个优点是他们不需要根据此答案将 WebHook 添加到存储库。- 不知道为什么这是一个优势。
  • 显然,GitHub 应用程序可以安装在不同的存储库中,也可以在市场上发布。但我也可以在不同存储库中对 Webhooks 使用相同的 URL,从而在一定程度上模仿存储库 Webhooks 的行为。
  • 还有什么?

小智 5

主要区别在于 webhook 生成事件并将它们发送到给定的 URL Github。应用程序有权根据您授予的权限访问您安装它们的存储库。

如果您有一个每次更新问题时都会触发的 Webhook,您将在您指定的 URL 处收到一个事件,但您将没有任何权限,例如在 Github 中修改该问题(例如通过 API 调用)。

如果您在存储库中安装了 Github 应用程序,并且在应用程序设置中设置了 Webhook URL,则事件也将发送到该 URL。然而,这里有一个区别:在 webhook URL 后面,您可能会有一个使用 Github 应用程序凭据(私钥或临时令牌)对您的 Github 存储库进行一些修改的服务。

一个例子:

  • Webhook -> 记录拉取请求更改
  • Github App -> 自动标记新的拉取请求