关于使用 GitHub CLI 接收 webhook
当你对集成代码进行更改时,在本地环境中运行代码可以让你快速测试和迭代,而无需部署代码。你可以使用 GitHub CLI 将 webhook 转发到你的本地环境。
GitHub CLI 中的 webhook 转发仅适用于存储库和组织 webhook。如果你想在本地测试其他类型的 webhook,则需要手动执行此操作。有关详细信息,请参阅“测试 webhook”。
警告: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。本指南假定你的应用程序正在
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
错误。