跳至主要内容

使用 GitHub CLI 转发 webhook 以进行测试

你可以使用 GitHub CLI 在你的开发环境中测试 webhook,而无需复杂的端口转发或第三方工具。

关于使用 GitHub CLI 接收 webhook

当你对集成代码进行更改时,在本地环境中运行代码可以让你快速测试和迭代,而无需部署代码。你可以使用 GitHub CLI 将 webhook 转发到你的本地环境。

GitHub CLI 中的 webhook 转发仅适用于存储库和组织 webhook。如果你想在本地测试其他类型的 webhook,则需要手动执行此操作。有关详细信息,请参阅“测试 webhook”。

警告:Webhook 转发仅设计用于测试和开发期间。不支持在生产环境中使用它来处理实时 webhook。

使用 GitHub CLI 接收 webhook

要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。

  1. 要安装 GitHub CLI 扩展以启用 webhook 转发,请使用 extension install 子命令。

    gh extension install cli/gh-webhook
    
  2. 如果你想转发组织 webhook,请将 admin:org_hook 范围添加到你的 GitHub CLI 登录,以便你拥有所需的权限。

    gh auth refresh --scopes admin:org_hook
    
  3. 在本地启动你的应用程序,并记下它期望接收 webhook 的 URL。本指南假定你的应用程序正在 https://127.0.0.1:3000/webhook 侦听 webhook 事件。

  4. 要设置将 webhook 传递到你的应用程序,请运行 webhook forward 子命令。将 REPOSITORY 替换为你的存储库名称。例如,monalisa/octocat。将 EVENTS 替换为你要接收的事件的逗号分隔列表。例如,issues,pull_request。将 URL 替换为你的应用程序期望接收 webhook 的本地 URL。例如,"https://127.0.0.1:3000/webhook"。要侦听组织 webhook 而不是存储库 webhook,请将 --repo 标志替换为 --org 标志。例如 --org="octo-org"

    gh webhook forward --repo=REPOSITORY --events=EVENTS --url=URL
    

让命令在后台运行。它将接收指定存储库的所有指定事件,并将它们转发到在指定 URL 运行的 webhook 处理程序。

注意:对于每个存储库和组织,一次只能有一人使用 webhook 转发。如果你尝试设置 webhook 转发,而其他人已经在使用该组织或存储库,则会收到 Hook already exists 错误。