GitHub Webhooks 允许你在一个或多个事件发生时,将通知发送到你的服务器。以下是如何配置 GitHub Webhooks 的步骤:

  1. 创建 Webhook

    • 登录到你的 GitHub 仓库。
    • 点击仓库右上角的“Settings”按钮。
    • 在左侧菜单中选择“Webhooks”。
    • 点击“Add webhook”按钮。
    • 在“Payload URL”中输入你的服务器地址,例如:/webhooks/your-webhook-endpoint
    • 选择触发 Webhook 的事件,例如:Push event
    • 点击“Add webhook”按钮。
  2. 验证 Webhook

    • 在添加 Webhook 的表单中,有一个“Secret”字段,你可以在这里输入一个秘密字符串,用于验证请求的来源。
    • 在你的服务器端,你需要验证这个秘密字符串,以确保请求是从 GitHub 发来的。
  3. 接收 Webhook 通知

    • 在你的服务器端,你需要创建一个端点来接收 Webhook 通知。
    • 当 GitHub 发送 Webhook 请求时,你的服务器将收到一个 POST 请求。
    • 你可以从请求体中解析出事件类型和事件数据。

以下是一个简单的 Node.js 示例,用于接收 Webhook 通知:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;

app.use(bodyParser.json());

app.post('/webhooks/your-webhook-endpoint', (req, res) => {
  const secret = 'your-secret-string';
  const xHubSignature = req.headers['x-hub-signature'];
  const xHubSignatureSha256 = 'sha256=' + crypto.createHmac('sha256', secret).update(JSON.stringify(req.body)).digest('hex');

  if (xHubSignature !== xHubSignatureSha256) {
    return res.status(403).send('Invalid signature');
  }

  // 处理事件
  // ...

  res.status(200).send('Webhook received');
});

app.listen(port, () => {
  console.log(`Server listening at http://localhost:${port}`);
});

更多关于 GitHub Webhooks 的信息,请参阅 GitHub 官方文档

GitHub Logo