You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Postman模拟带GitHub Payload的Webhook请求至本地Probot应用?

解决Probot Webhook签名不匹配问题

你遇到的错误是因为Probot会验证Webhook请求的签名,确保请求来自GitHub。要在Postman里模拟成功,除了正确的Header和Body,关键是要生成并添加符合要求的签名头,具体步骤如下:

  • 确保Payload完全一致:从GitHub复制的Webhook payload必须原封不动粘贴到Postman的Body(选raw -> JSON格式),不能有任何多余的空格、换行或修改,否则签名会不匹配。
  • 生成正确的X-Hub-Signature-256头:
    1. 拿你.env文件里的WEBHOOK_SECRET作为密钥,对完整的payload内容做HMAC SHA256哈希计算。
    2. 把计算出的哈希值转成十六进制字符串,然后拼接成sha256=你的十六进制哈希值格式。
    3. 在Postman的请求头里添加X-Hub-Signature-256字段,值就是上面生成的字符串。
  • 检查其他必填请求头:
    • 必须添加X-GitHub-Event头,值设为issues(对应你监听的issues.opened事件)。
    • 确保Content-Type头设为application/json。

如果手动计算签名容易出错,可以用Postman的Pre-request Script自动生成:

// 先把WEBHOOK_SECRET存到Postman环境变量里
const secret = pm.environment.get("WEBHOOK_SECRET");
const payload = pm.request.body.raw;
const hmac = CryptoJS.HmacSHA256(payload, secret);
const signature = `sha256=${hmac.toString(CryptoJS.enc.Hex)}`;
// 自动添加签名头
pm.request.headers.add({ key: "X-Hub-Signature-256", value: signature });

这样配置后,Postman发送的请求就能通过Probot的签名验证,触发你的issue回复逻辑了。

内容的提问来源于stack exchange,提问作者Szymskiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:24:58