跳至主要内容

使用 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. 要安装启用 Webhook 转发的 GitHub CLI 扩展,请使用 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 错误。