POSTWebhook 接口

接收 GitHub Release Webhook 推送

供 GitHub 仓库 Webhook 直接调用,不使用管理员 JWT 或 API Key, 唯一凭据是项目上配置的 secret(`X-Hub-Signature-256` HMAC-SHA256 校验)。 - 仅处理 `release` 事件的 `published` / `released` / `prereleased` / `created` / `edited` 动作 - `deleted` / `unpublished` 不会删除已有版本,需人工在后台处理 - 草稿(draft)release、无法解析为可比较版本号的 tag 会被跳过并返回 `ignored` - 版本号已存在时按 GitHub 推送内容覆盖,不存在时创建 - 直接使用推送 payload 中的 release 数据,不再回查 GitHub API

URL

/api/v1/webhooks/github/{projectKey}

鉴权方式

需要 Webhook 签名(X-Hub-Signature-256: sha256=<hmac>),不接受管理员 JWT 或 API Key

请求参数

Path 参数

名称类型必填说明
projectKeystring项目主键 project_key(大小写不敏感)

Header 参数

名称类型必填说明
X-Hub-Signature-256stringsha256=<请求体原始字节的 HMAC-SHA256,密钥为项目 webhook secret>
X-GitHub-EventstringGitHub 事件名,仅 `release` 会触发同步,`ping` 返回 pong
X-GitHub-DeliverystringGitHub 投递 ID,仅用于日志关联

请求体

{
  "action": "published",
  "release": {
    "tag_name": "v1.4.0",
    "name": "Verhub 1.4.0",
    "body": "新增 GitHub Release Webhook 同步",
    "draft": false,
    "prerelease": false,
    "published_at": "2026-07-21T10:00:00Z",
    "html_url": "https://github.com/example/verhub/releases/tag/v1.4.0",
    "assets": [
      {
        "name": "verhub-1.4.0-win-x64.zip",
        "browser_download_url": "https://github.com/example/verhub/releases/download/v1.4.0/verhub-1.4.0-win-x64.zip"
      }
    ]
  },
  "repository": {
    "full_name": "example/verhub"
  }
}

响应示例

200 响应

{
  "status": "synced",
  "event": "release",
  "action": "published",
  "version": "1.4.0",
  "created": true
}
POST

Try It Out

请求 URL 预览

/api/v1/webhooks/github/verhub