{"meta":{"title":"创建网络钩子","intro":"可以创建 Webhook 来订阅 GitHub 上发生的特定事件。","product":"Webhook","breadcrumbs":[{"href":"/zh/webhooks","title":"Webhook"},{"href":"/zh/webhooks/using-webhooks","title":"使用网络钩子（Webhook）"},{"href":"/zh/webhooks/using-webhooks/creating-webhooks","title":"创建 Webhook"}],"documentType":"article"},"body":"# 创建网络钩子\n\n可以创建 Webhook 来订阅 GitHub 上发生的特定事件。\n\n## 关于创建 Webhook\n\n可以创建 Webhook 来订阅在 存储库、组织、 GitHub Marketplace 帐户、 GitHub Sponsors 帐户、 或 GitHub App 中发生的特定 GitHub 事件。\n\n有关不同类型的 Webhook 的详细信息，请参阅“[Webhook 的类型](/zh/webhooks/types-of-webhooks)”。\n\n有关 Webhook 事件的完整列表，请参阅“[Webhook 事件和有效负载](/zh/webhooks/webhook-events-and-payloads)”。\n\n## 创建存储库 Webhook\n\n可以创建 Webhook 以订阅在特定存储库中发生的事件。 必须是存储库所有者，或在存储库中具有管理员访问权限的人员，才能在该存储库中创建 Webhook。\n\n可以使用 GitHub Web 界面或 REST API 来创建存储库 Webhook。 有关使用 REST API 创建存储库 Webhook 的详细信息，请参阅“[存储库 Webhook 的 REST API 终结点](/zh/rest/webhooks/repos#create-a-repository-webhook)”。\n\n1. 在 GitHub 上，导航到存储库的主页面。\n2. 在仓库名称下，单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg>“Settings”\\*\\*\\*\\*。 如果看不到“设置”选项卡，请选择“<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"kebab horizontal icon\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>”下拉菜单，然后单击“设置”。\n\n   ![存储库标头的屏幕截图，其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。](/assets/images/help/repository/repo-actions-settings.png)\n3. 在左边栏中，单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-webhook\" aria-label=\"webhook\" role=\"img\"><path d=\"M5.5 4.25a2.25 2.25 0 0 1 4.5 0 .75.75 0 0 0 1.5 0 3.75 3.75 0 1 0-6.14 2.889l-2.272 4.258a.75.75 0 0 0 1.324.706L7 7.25a.75.75 0 0 0-.309-1.015A2.25 2.25 0 0 1 5.5 4.25Z\"></path><path d=\"M7.364 3.607a.75.75 0 0 1 1.03.257l2.608 4.349a3.75 3.75 0 1 1-.628 6.785.75.75 0 0 1 .752-1.299 2.25 2.25 0 1 0-.033-3.88.75.75 0 0 1-1.03-.256L7.107 4.636a.75.75 0 0 1 .257-1.03Z\"></path><path d=\"M2.9 8.776A.75.75 0 0 1 2.625 9.8 2.25 2.25 0 1 0 6 11.75a.75.75 0 0 1 .75-.751h5.5a.75.75 0 0 1 0 1.5H7.425a3.751 3.751 0 1 1-5.55-3.998.75.75 0 0 1 1.024.274Z\"></path></svg>“Webhooks”\\*\\*\\*\\*。\n4. 单击“添加 Webhook”  。\n5. 在“有效负载 URL”下，键入要接收有效负载的 URL。\n6. （可选）选择“内容类型”下拉菜单，然后单击一种数据格式以接收 Webhook 有效负载。\n   * **application/json** 直接将 JSON 有效负载作为 POST `POST` 请求的正文传递。\n   * **application/x-www-form-urlencoded** 将 JSON 有效负载作为表单参数发送，称为 `payload`。\n7. （可选）在“机密”下，键入用作 `secret` 密钥的字符串。 应选择高熵的随机文本字符串。 可以使用 Webhook 机密，将传入请求限制为仅源自 GitHub 的请求。 有关详细信息，请参阅“[验证 Webhook 交付](/zh/webhooks/using-webhooks/securing-your-webhooks)”。\n8. 在“你希望通过哪些事件来触发此 Webhook？”下，选择要接收的 Webhook 事件。 应仅订阅需要的 Webhook 事件。\n9. 如果选择\\*\\*\\*\\*“让我选择单个事件”，请选择你希望触发 Webhook 的事件。\n10. 要在添加配置后使 Webhook 处于活动状态，请选择“活动”。\n11. 单击“添加 Webhook”  。\n\n创建新的 Webhook 后，GitHub 将向你发送一个简单的 `ping` 事件，告知你已正确设置 Webhook。 有关详细信息，请参阅“[Webhook 事件和有效负载](/zh/webhooks/webhook-events-and-payloads#ping)”。\n\n## 创建组织 Webhook\n\n可以创建 Webhook 以订阅在特定组织中发生的事件。 必须是组织所有者，才可以在该组织中创建网络钩子。\n\n可以使用 GitHub Web 界面或 REST API 来创建组织 Webhook。 有关使用 REST API 创建组织 Webhook 的详细信息，请参阅“[用于组织 Webhooks 的 REST API 接口节点](/zh/rest/orgs/webhooks#create-an-organization-webhook)”。\n\n1. 在 GitHub 上任意页的右上角，单击个人资料图片。\n2. 单击“你的组织”。\\*\\*\\*\\*\n3. 在组织右侧，单击“设置”。\n   数据reusables.webhooks.sidebar\\_webhooks %}数据reusables.webhooks.add\\_webhook\\_button %}\n4. 在“有效负载 URL”下，键入要接收有效负载的 URL。\n5. （可选）选择“内容类型”下拉菜单，然后单击一种数据格式以接收 Webhook 有效负载。\n   * **application/json** 直接将 JSON 有效负载作为 POST `POST` 请求的正文传递。\n   * **application/x-www-form-urlencoded** 将 JSON 有效负载作为表单参数发送，称为 `payload`。\n6. （可选）在“机密”下，键入用作 `secret` 密钥的字符串。 应选择高熵的随机文本字符串。 可以使用 Webhook 机密，将传入请求限制为仅源自 GitHub 的请求。 有关详细信息，请参阅“[验证 Webhook 交付](/zh/webhooks/using-webhooks/securing-your-webhooks)”。\n7. 在“你希望通过哪些事件来触发此 Webhook？”下，选择要接收的 Webhook 类型。 应仅订阅需要的 Webhook 事件。\n8. 如果选择“让我选择单个事件”\\*\\*\\*\\*，请选择将会触发 Webhook 的事件。\n9. 要在添加配置后使 Webhook 处于活动状态，请选择“活动”。\n10. 单击**添加 webhook**。\n\n创建新的 Webhook 后，GitHub 将向你发送一个简单的 `ping` 事件，告知你已正确设置 Webhook。 有关详细信息，请参阅“[Webhook 事件和有效负载](/zh/webhooks/webhook-events-and-payloads#ping)”。\n\n## 创建GitHub Marketplace webhook\n\n可以创建一个 Webhook 来订阅与在 GitHub Marketplace 中发布的应用相关的事件。 只有应用的所有者或该应用的应用管理员可以创建 GitHub Marketplace Webhook。\n\n1. 导航到“GitHub Marketplace 列表页”。[](https://github.com/marketplace/manage)\n2. 在您想要查看 Webhook 交付情况的 GitHub Marketplace 列表旁边，单击 **管理列表**。\n3. 单击边栏中的“Webhook”。\\*\\*\\*\\*\n4. 在“有效负载 URL”下，键入要接收有效负载的 URL。\n5. （可选）选择“内容类型”下拉菜单，然后单击一种数据格式以接收 Webhook 有效负载。\n   * **application/json** 直接将 JSON 有效负载作为 POST `POST` 请求的正文传递。\n   * **application/x-www-form-urlencoded** 将 JSON 有效负载作为表单参数发送，称为 `payload`。\n6. （可选）在“机密”下，键入用作 `secret` 密钥的字符串。 应选择高熵的随机文本字符串。 可以使用 Webhook 机密，将传入请求限制为仅源自 GitHub 的请求。 有关详细信息，请参阅“[验证 Webhook 交付](/zh/webhooks/using-webhooks/securing-your-webhooks)”。\n7. 要在添加配置后使 Webhook 处于活动状态，请选择“活动”。\n8. 单击**创建 Webhook**。\n\n创建新的 Webhook 后，GitHub 将向你发送一个简单的 `ping` 事件，告知你已正确设置 Webhook。 有关详细信息，请参阅“[Webhook 事件和有效负载](/zh/webhooks/webhook-events-and-payloads#ping)”。\n\n## 创建 GitHub Sponsors webhook\n\n可以创建 Webhook 来订阅与赞助相关的事件。 只有被赞助帐户的所有者才能为该帐户创建赞助 Webhook。 有关订阅赞助 Webhook 的事件的详细信息，请参阅 [`sponsorship` Webhook 事件](/zh/webhooks-and-events/webhooks/webhook-events-and-payloads#sponsorship)。\n\n1. 在任何页面的右上角，单击个人资料照片，然后单击你的赞助者\\*\\*\\*\\*。\n2. 在要为其创建 Webhook 的帐户旁边，单击“控制面板”\\*\\*\\*\\*。\n3. 在左侧边栏中，单击“Webhook”。\n4. 单击“添加 Webhook”  。\n5. 在“有效负载 URL”下，键入要接收有效负载的 URL。\n6. （可选）选择“内容类型”下拉菜单，然后单击一种数据格式以接收 Webhook 有效负载。\n   * **application/json** 直接将 JSON 有效负载作为 POST `POST` 请求的正文传递。\n   * **application/x-www-form-urlencoded** 将 JSON 有效负载作为表单参数发送，称为 `payload`。\n7. （可选）在“机密”下，键入用作 `secret` 密钥的字符串。 应选择高熵的随机文本字符串。 可以使用 Webhook 机密，将传入请求限制为仅源自 GitHub 的请求。 有关详细信息，请参阅“[验证 Webhook 交付](/zh/webhooks/using-webhooks/securing-your-webhooks)”。\n8. 要在添加配置后使 Webhook 处于活动状态，请选择“活动”。\n9. 单击**创建 Webhook**。\n\n## 为 GitHub App 创建 Webhook。\n\nGitHub App 的所有者可以为应用订阅 Webhook 事件，以便在发生特定事件时收到通知。 如果应用所有者为 GitHub App 指定了任何应用管理员，则应用管理员也可以为应用订阅 Webhook 事件。 有关详细信息，请参阅“[将 Webhook 与 GitHub 应用配合使用](/zh/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps)”。\n\n每个 GitHub App 有一个 Webhook。 可以在注册 GitHub App 时配置 Webhook，也可以编辑现有 GitHub App 注册的 Webhook 配置。\n\n有关注册 GitHub App 时配置 Webhook 的详细信息，请参阅“[注册GitHub应用](/zh/apps/creating-github-apps/registering-a-github-app/registering-a-github-app)”。\n\n要为现有 GitHub App 注册配置 Webhook：\n\n1. 在 GitHub 上任意页的右上角，单击你的个人资料图片。\n2. 导航到你的帐户设置。\n   * 对于由个人帐户拥有的应用，请单击“设置”\\*\\*\\*\\*。\n   * 对于组织拥有的应用：\n     1. 单击“你的组织”。\n     2. 在组织的右侧，单击**设置**。\n3. 在左边栏中，单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code\" aria-label=\"code\" role=\"img\"><path d=\"m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z\"></path></svg>“Developer settings”\\*\\*\\*\\*。\n4. 在左侧边栏中，单击“GitHub Apps”。\n5. 在要为其配置 Webhook 的 GitHub App 旁边，单击“编辑”\\*\\*\\*\\*。\n6. 在“Webhook”下，选择“启用”\\*\\*\\*\\*。\n7. 在“Webhook URL”下，输入你希望接收数据的 URL。\n8. （可选）在“Webhook 机密”下，键入用作 `secret` 密钥的字符串。 应选择高熵的随机文本字符串。 可以使用 Webhook 机密，将传入请求限制为仅源自 GitHub 的请求。 有关详细信息，请参阅“[验证 Webhook 交付](/zh/webhooks/using-webhooks/securing-your-webhooks)”。\n9. 单击“保存更改”。\n10. 在边栏中，单击“权限和事件”\\*\\*\\*\\*。\n11. 可以为 GitHub App 注册选择的具体 Webhook 事件根据为应用选择的权限类型而定。 首先需要选择希望应用拥有的权限，然后可以让应用订阅与该权限集相关的 Webhook 事件。\n\n    在“存储库权限”、“组织权限”和“帐户权限”部分下，选择应用将订阅的事件所需的权限。 有关详细信息，请参阅“[为GitHub应用选择权限](/zh/apps/creating-github-apps/creating-github-apps/choosing-permissions-for-a-github-app)”。 有关更改权限时需考虑事项的详细信息，请参阅[修改 GitHub App 注册](/zh/apps/maintaining-github-apps/modifying-a-github-app-registration#changing-the-permissions-of-a-github-app)。\n12. 在“订阅事件”下，选择希望 GitHub App 接收的 Webhook 事件。\n13. 单击“保存更改”。\n\n可以使用 REST API 为 GitHub App 创建 Webhook。 有关详细信息，请参阅“[Webhooks 的 GitHub App REST API 终结点](/zh/rest/apps/webhooks)”。\n\n## 其他阅读材料\n\n* [关于 网络钩子](/zh/webhooks/about-webhooks)\n* [处理 Webhook 交付](/zh/webhooks/using-webhooks/handling-webhook-deliveries)"}