简介
@octokit/webhooks 是一种 GitHub Webhooks 的 Node.js 实现。GitHub Webhooks 就是在特定事件发生时,GitHub 会向指定的 URL 发送 HTTP POST 请求,以便您在事件发生时执行某些操作。@octokit/webhooks 包提供了一个简单的方法,使您可以在您的应用程序中处理这些 Webhooks。
下载与安装
要安装 @octokit/webhooks 包,请使用 npm,执行以下命令:
npm install @octokit/webhooks
使用步骤
- 创建一个暴露 HTTP(S) 端口的 Web 服务器。
-- -------------------- ---- ------- ----- ---- - --------------- ----- ---- - ---------------- -- ---- ----- ------ - -------------------------- ----- ---- - -------------- - --- ----------------------------- ------------- -------------- --------- -- ------------------- -------- -- - ------------------- ------- -- ---- --------- --
- 创建一个 GitHub Webhook 处理程序。
-- -------------------- ---- ------- ----- - -------- - - ---------------------------- ----- -------- - --- ---------- ---------------- -- --- ----- ------- -- -- - ----------------- ------ ---------- ----------------------- -------- -- -------------- - ----- ---- -- - --- ---- - -- -------------- ----- -- - ---- -- ---------------- -- ------------- -- -- - --------------------------- --- --------------------------------- ----- ------------------------------ ---------- ------------------------------- -------- ---- ---------- -- - -------------- - --- ----------------- ------------ -- - ----------------------- ---- -------------- - --- ---------------- ----------- -- -- -
- 将 Webhook 处理程序连接到 Web 服务器。
const { createServer } = require('http') const handler = require('./handler.js') createServer(handler).listen(1337, () => { console.log('Webhook server listening on port:', 1337) })
- 设置 Webhook URL 到您的 GitHub 存储库中。
- 在 GitHub 仓库的页面,单击“设置”。
- 在设置页面,单击“Webhooks”选项卡。
- 单击“添加 Webhook”按钮。
- 在“Payload URL”输入框中输入您的 Web 服务器公开的 URL。
- 在“Content type”列表中选择“application/json”。
- 单击“添加 Webhook”按钮。
现在,当您提交代码或创建问题等事件时,您的 Web 服务器将接收到 GitHub Webhooks 的 POST 请求,并将其处理。
示例代码
完整示例的源代码可以在 这里 找到。
总结
使用 @octokit/webhooks 包使 Node.js 应用程序能够处理 GitHub Webhooks,以便在事件发生时自动执行某些操作。该包提供了一个简单易用的方式来处理这些 Webhooks,并且在实际的项目中应用非常广泛。希望本教程能够帮助您快速使用 @octokit/webhooks 包,并将其应用到您的项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/96079