模拟 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