关于使用 GitHub CLI 接收 Webhook
当您对集成代码进行更改时,在本地环境中运行代码可以让您快速测试和迭代,而无需部署代码。您可以使用 GitHub CLI 将 Webhook 转发到您的本地环境。
GitHub CLI 中的 Webhook 转发仅适用于仓库和组织 Webhook。如果您想在本地测试其他类型的 Webhook,则需要手动执行此操作。有关更多信息,请参阅“测试 Webhook”。
警告
Webhook 转发仅供测试和开发使用。它不支持在生产环境中用于处理实时 Webhook。
使用 GitHub CLI 接收 Webhook
要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。
-
要安装启用 Webhook 转发的 GitHub CLI 扩展,请使用
extension install
子命令。gh extension install cli/gh-webhook
-
如果您想转发组织 Webhook,请将
admin:org_hook
范围添加到您的 GitHub CLI 登录信息中,以便您拥有所需的权限。gh auth refresh --scopes admin:org_hook
-
在本地启动您的应用程序,并记下它期望接收 Webhook 的 URL。本指南假设您的应用程序正在侦听
https://127.0.0.1:3000/webhook
上的 Webhook 事件。 -
要设置要传递到您的应用程序的 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
错误。