【问题标题】:Repository-Webhooks vs Github Apps - which to use?Repository-Webhooks vs Github Apps - 使用哪个?
【发布时间】:2022-05-21 01:54:31
【问题描述】:
用例:我当前的用例是对新问题做出反应并发布自动 cmets。这主要针对一两个存储库。
因此我猜想webhooks 在存储库上以及Github Apps 都可以使用。尽管 Github 在这两个方面都有一些非常好的文档,但我不确定在我的场景中使用哪一个。
比较它们有什么优点/缺点?
- Github Apps 的一个优点是它们不需要根据这个answer 向存储库添加 WebHook。 - 不知道为什么这是一个优势。
- 显然,GitHub 应用程序可以安装在不同的存储库中,也可以在市场上发布。但我也可以在不同的存储库中为 Webhook 使用相同的 URL,从而在一定程度上模仿 repository-webhooks 的行为。
- 还有什么?
【问题讨论】:
标签:
github
webhooks
github-api
【解决方案1】:
主要区别在于 webhook 生成事件并将它们发送到给定的 URL Github。应用有权根据您授予的权限访问您安装它们的存储库。
如果您有一个每次更新问题时都会触发的 webhook,您将在您指定的 URL 上收到一个事件,但您没有任何权利,例如在 Github 中修改该问题(例如通过 API 调用)。
如果您在存储库中安装了 Github 应用,并且在应用设置中设置了 webhook URL,那么事件也会发送到该 URL。但是,区别在于:在 webhook URL 后面,您可能会有一个使用 Github 应用凭据(私钥或临时令牌)对您的 Github 存储库进行一些修改的服务。
一个例子:
- Webhook -> 记录拉取请求更改
- Github 应用程序 -> 自动标记新的拉取请求