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

如何通过curl或GitHub CLI创建GitHub仓库webhook?

1. -d '{"name":"name"}'的作用

curl的-d(全称--data)参数用于携带POST请求的请求体数据,向GitHub接口传递webhook的创建配置。你当前传的配置存在两处错误:

  • name字段是GitHub预留字段,创建常规webhook时固定取值为web,不能自定义为其他值
  • 缺少webhook必填的config配置项,GitHub要求所有webhook必须指定接收事件的回调URL,这也是你收到报错的直接原因。

2. webhook配置参数添加规则

所有配置参数都需要放在-d的JSON结构中,核心必填/可选字段说明:

  • 固定字段name:取值必须为"web"
  • config(必填对象):
    • 必填子字段url:你的服务接收webhook事件的回调地址
    • 可选子字段:content_type(建议传json,指定GitHub推送事件的 payload 格式)、secret(自定义密钥,用于校验请求是否来自GitHub)
  • events(必填数组):指定触发webhook的事件,比如监听推送和PR事件传["push", "pull_request"],监听所有事件传["*"]
  • active(可选布尔值):指定webhook创建后是否立即启用,默认值为true

可用curl命令示例

curl -u <GitHub用户名>:<Personal Access Token> \
    -X POST \
    -H "Accept: application/vnd.github.v3+json" \
    https://api.github.com/repos/<所属组织/用户名>/<仓库名>/hooks \
    -d '{
      "name": "web",
      "active": true,
      "events": ["push", "pull_request"],
      "config": {
        "url": "https://你的服务回调地址",
        "content_type": "json",
        "secret": "自定义校验密钥"
      }
    }'

注意你使用的Personal Access Token需要拥有对应仓库的admin:repo_hook权限,才能成功创建webhook。

GitHub CLI 创建命令示例

使用GitHub CLI操作无需手动拼接JSON结构,更简单不易出错:

gh webhook create \
  --repo <所属组织/用户名>/<仓库名> \
  --url https://你的服务回调地址 \
  --event push \
  --event pull_request \
  --secret 自定义校验密钥 \
  --active

内容的提问来源于stack exchange,提问作者Chris G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:24:02