关于使用 GitHub CLI 接收 Webhook
更改集成代码时,在本地环境中运行代码可以快速测试和迭代,而无需部署代码。 可以使用 GitHub CLI 将 Webhook 转发到本地环境。
GitHub CLI 中的 Webhook 转发仅适用于存储库和组织 Webhook。 如果要在本地测试其他类型的 Webhook,则需要手动执行此操作。 有关详细信息,请参阅“测试 web 挂钩”。
Warning
Webhook 转发仅供测试和开发期间使用。 不支持在生产环境中使用它来处理实时 Webhook。
使用 GitHub CLI 接收 Webhook
若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。
-
若要安装 GitHub CLI 扩展以启用 Webhook 转发,请使用
extension install
子命令。gh extension install cli/gh-webhook
-
如果想转发组织 Webhook,请将
admin:org_hook
范围添加到 GitHub CLI 登录,以便拥有所需的权限。gh auth refresh --scopes admin:org_hook
-
在本地启动应用程序,并记下希望接收 Webhook 的 URL。 本指南假定应用程序正在侦听
http://localhost:3000/webhook
中的 Webhook 事件。 -
若要设置要传递到应用程序的 Webhook,请运行
webhook forward
子命令。 将REPOSITORY
替换为存储库的名称。 例如,monalisa/octocat
。 将EVENTS
替换为要接收的事件的逗号分隔列表。 例如,issues,pull_request
。 将URL
替换为应用程序希望接收 Webhook 的本地 URL。 例如,"http://localhost:3000/webhook"
。 若要侦听组织 Webhook 而不是存储库 Webhook,请将--repo
标志替换为--org
标志。 例如,--org="octo-org"
。gh webhook forward --repo=REPOSITORY --events=EVENTS --url=URL
让命令在后台运行。 它将接收指定存储库的所有指定事件,并将其转发到在指定 URL 处运行的 Webhook 处理程序。
Note
对于每个存储库和组织,一次只能有一个人使用 Webhook 转发。 如果你尝试设置 Webhook 转发,但其他人已在该组织或存储库中使用该转发,则会收到 Hook already exists
错误。