模拟 GitHub 推送 Webhook

一个形状类似于 GitHub 推送事件的 GET 模拟,在 refs/heads/main 上有一个提交。

该模板返回一个带有 refs/heads/main 上的一个提交的 GitHub 形状的推送事件,因此您可以开发 CI 触发器或机器人处理程序,而无需推送到真实的存储库。它携带了大多数处理程序实际作为分支条件的字段 —— ref、after 和存储库名称 —— 并省略了签名标头,因此它锻炼了您的解析能力而不是验证能力。

返回一个现成的事件 — 将其直接提供给您自己的处理程序。

响应负载

{
  "ref": "refs/heads/main",
  "before": "a10867b14bb761a232cd80139fbd4c0d33264240",
  "after": "b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9",
  "repository": {
    "full_name": "octocat/quickmock-demo"
  },
  "pusher": {
    "name": "octocat"
  },
  "commits": [
    {
      "id": "b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9",
      "message": "fix: handle empty payload",
      "timestamp": "2024-05-01T12:00:00Z"
    }
  ]
}

值得了解的字段

字段 含义
ref 推送到的分支,例如 refs/heads/main。
after 推送后的提交 SHA —— 以后的 GitHub API 调用会引用它。
repository.full_name 以 owner/repo 格式表示的存储库名称;编辑它以匹配您的测试存储库。
pusher.name 推送的 GitHub 用户名。
commits 此推送中包含的提交 —— 在这里修剪为一个。

创建模拟数据

curl -X POST https://quickmock.dev/api/mocks \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "GET",
  "response_status": 200,
  "content_type": "application/json",
  "response_body": "{\"ref\":\"refs/heads/main\",\"before\":\"a10867b14bb761a232cd80139fbd4c0d33264240\",\"after\":\"b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9\",\"repository\":{\"full_name\":\"octocat/quickmock-demo\"},\"pusher\":{\"name\":\"octocat\"},\"commits\":[{\"id\":\"b7e1a2c3d4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9\",\"message\":\"fix: handle empty payload\",\"timestamp\":\"2024-05-01T12:00:00Z\"}]}"
}'

调用它

curl https://quickmock.dev/m/<slug>

您将获得什么

GET /m/<slug> -> 200 a GitHub-style push event
one commit on refs/heads/main

这与真实情况有何不同

这是一个单一的静态提交,而不是真正的推送事件携带的完整字段集 —— 没有 X-Hub-Signature-256 标头,没有 sender 或 head_commit,也没有 compare URL。

来源

常见问题解答

这是真实的 GitHub Webhook 吗?
不。它是从您的模拟 URL 提供的单一静态提交,没有真实推送事件携带的 X-Hub-Signature-256 标头、sender、head_commit 或 compare URL。
如何测试推送到不同分支?
在响应正文中更改 ref —— 例如更改为 refs/heads/release。分支过滤是推送处理程序中最常见的逻辑段,也是最容易出错的。
我可以用它测试标签或删除事件吗?
只能通过编辑正文以匹配这些具有不同形状的负载来实现。对于根据事件类型分派的处理程序,为每个事件创建一个模拟,以便每个情况都有自己稳定的 URL。

准备好使用了吗?

在模拟构建器中打开以先进行调整

与本指南非常搭配: 测试 Webhook 接收器

相关模板

← 所有模板

最后更新: 2026-10-17