关于使用 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,请在 GitHub CLI 登录时添加
admin:org_hook权限范围,以获得所需的权限。gh auth refresh --scopes admin:org_hook -
在本地启动您的应用程序,并记录其接收 webhook 的 URL。本指南假设您的应用程序在
https://:3000/webhook上监听 webhook 事件。 -
要设置将 webhook 发送到您的应用程序,请运行
webhook forward子命令。用您的仓库名称替换REPOSITORY,例如monalisa/octocat。用逗号分隔的事件列表替换EVENTS,例如issues,pull_request。用本地 URL 替换URL,即应用程序期望接收 webhook 的地址,例如"https://: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 错误。