Webhooks 可以与 GitHub OAuth 应用程序一起使用吗?

Sas*_*eca 5 oauth github webhooks

所以我一直在阅读 GitHub 开发人员文档和关于 webhooks 他们有以下声明:

Webhooks 允许您构建或设置订阅 GitHub.com 上某些事件的 GitHub 应用程序。当这些事件之一被触发时,我们将向 webhook 的配置 URL 发送一个 HTTP POST 负载。Webhooks 可用于更新外部问题跟踪器、触发 CI 构建、更新备份镜像,甚至部署到您的生产服务器。你只受限于你的想象力。

但是,关于应用程序,他们也有这样的声明:

GitHub 上的应用程序扩展并改进了现有的工作流程。人们可以从 GitHub Marketplace 购买应用程序,或者在 Works with GitHub 中浏览与 GitHub 集成的有用工具和服务。

如果您正在构建或添加集成,本文档将帮助您启动和运行。

有关与 GitHub 应用程序(而非 OAuth 应用程序)相关的支持请求、错误报告和讨论,请使用 GitHub 平台论坛。该论坛允许您与其他集成商以及来自 GitHub 的工程师和产品经理合作。

如果您的请求与 OAuth 应用程序有关,或者您需要讨论私人问题,请直接联系支持人员。

这似乎 Webhooks 只能与 GitHub Apps 一起使用?GitHub 应用程序和 GitHub OAuth 应用程序之间的区别不是很清楚,我不明白为什么 OAuth 应用程序不能使用 Webhooks?

oso*_*kit 5

编辑

Webhooks 可以与 GitHub OAuth 应用程序一起使用吗?

是的。

Webhooks 允许您构建或设置订阅 GitHub.com 上某些事件的 GitHub 应用程序。

这是一个不正确的说法。这应该是“与 GitHub 的集成”而不是“GitHub 应用程序”。

看来Webhooks只能与GitHub Apps一起使用?

不会。GitHub 应用程序包含对 Webhooks 的隐式支持。OAuth 应用程序请求具有范围的令牌,write:repo_hook或者在存储库或组织上admin:org_hook注册Webhook

有一个创建 webhook的指南建议使用repo hooksAPIorg hooks端点

GitHub Apps 和 GitHub OAuth Apps 之间的区别不是很清楚,我不明白为什么 OAuth 应用程序无法使用 Webhooks?

有文档描述了GitHub 应用程序和 OAuth 应用程序之间的一些差异。

GitHub 应用程序的 TLDR 优势:


原来的

Webhooks允许您的服务器/应用程序在特定事件发生时收到通知 - 无论您使用的是 OAuth 还是 GitHub App。然后,您的应用程序将需要处理事件并采取相应的行动。

另外,您的应用程序需要与 GitHub 的 API 交互以创建、读取、编辑或删除信息。GitHub 通常需要凭据才能访问或更新特定信息。GitHub API 的身份验证可以使用多种方法:

旧版 GitHub 集成和 GitHub 应用程序之间还存在其他差异。

  • 较早的集成基于 Oauth2 并使用与用户帐户关联的令牌。集成将代表用户与 GitHub 的 API 进行交互 - 这就是为什么一些组织会设置机器用户。还需要显式添加 Webhook。

  • GitHub Apps 将代表其自身与 GitHub 的 API 进行交互。您必须明确授予 GitHub 应用程序对启用 Webhook 和 API 访问的组织或存储库的访问权限。