为 GitHub 存储库设置 Webhook
在 GitHub 中,可以在组织或特定存储库上设置 Webhook。 每次出现一个或多个订阅事件时,都会触发 Webhook。 例如,“Gollum”事件可以侦听 Wiki 更新,特别是创建和更新 Wiki 页面。
在本单元中,你将了解如何设置侦听公司 GitHub Wiki 中更改事件的 Webhook。
设置 Webhook
设置 Webhook 只需两步。 首先,在 GitHub 中指定你希望 Webhook 的行为方式及其将侦听的事件。 第二步,在 Azure Functions 中设置你的函数以接收和管理从 Webhook 收到的有效负载。 在示例场景中,我们为特定存储库设置了 Webhook。
要设置 Webhook,请在 GitHub 门户中,从顶部菜单栏中选择“设置”。 此时将显示“设置”页,其中包含存储库的名称。 在左侧菜单中,选择“Webhook”,然后选择“添加 Webhook”。 还可以通过 Webhook API 生成和管理 Webhook,但本模块不介绍此内容。
Webhook 需要几个配置选项,然后你才能使用它。 下一步,我们将逐一介绍这些设置。
有效负载 URL
有效负载 URL 是将接收 Webhook POST 请求的服务器的 URL。
每个事件类型都具有特定的有效负载格式。 该有效负载包含有关触发 Webhook 的事件的信息。
内容类型
Webhook 可以使用两种不同的内容类型提供:
- “application/json”内容类型直接将 JSON 有效负载作为 POST 请求的正文传递。
- “application/x-www-form-urlencoded”内容类型将 JSON 有效负载作为表单参数发送,名为“payload”。
注意
“添加 Webhook”页还可以指定如何使用”密码”保护 Webhook 发送的信息。 本模块后文中介绍了此主题。
事件
事件是 Webhook 的核心。 当在存储库中执行操作时,将发生事件。 当事件发生时,Webhook 将触发并调用你指定的 URL,将有效负载和事件信息发送到你的 URL。 例如,若要在存储库中引发问题时进行响应,请选择“让我选择单个事件”,然后选中“问题”复选框。 请确保选中“可用”复选框,以接收触发的 Webhook 的问题事件。 然后选择“添加 Webhook”以激活触发器。
若要侦听存储库的 Wiki 更新,请选中“Wiki”复选框;此事件是前面所述的“Gollum”事件。 选择“添加 Webhook”以保存选择的所有单个事件。
可以通过访问 GitHub Webhooks 事件找到 Webhook 事件的完整列表及其运行时间。
在下一个练习中,我们将引导你完成为 GitHub 存储库设置 Webhook 的过程。