利用存储库 Webhook 可在存储库内发生特定事件时接收 HTTP POST
有效负载。 利用 Webhook REST API,� 可以管理存储库、组织和应用 Webhook。 也可以使用 REST API 来更改 Webhook 的配置。 例如,您可以修改有效负载 URL、内容类型、SSL 验证和机密。 有关详细信息,请参阅:
如果要设置一个 Webhook 来接收来自组织所有存储库的事件,请参阅关于组织 Webhook 的 API 文档。
除了 REST API 之外,GitHub 还可以用作存储库的 PubSubHubbub 中心。
接收 web 挂钩
为了让 GitHub Enterprise Server 发送 web 挂钩有效负载,您的服务器需要能够从 Internet 访问。 我们还强烈建议使用 SSL,以便我们可以通过 HTTPS 发送� 密的有效负载。
Web 挂钩� �头
GitHub Enterprise Server 发送时将附带� 个 HTTP � �头,以区分事件类型和有效负载� �识符。 有关详细信息,请参阅 Webhook � �头。
PubSubHubbub
GitHub 还可以用作所有存储库的 PubSubHubbub 中心。 PSHB 是一个简单的发布/订阅协议,允许服务器注册在主题更新时接收更新。 这些更新随 HTTP POST 请求一起发送到回调 URL。 GitHub 仓库推送的主题 URL 采用以下� �式:
https://github.com/{owner}/{repo}/events/{event}
事件可以是任何可用的 web 挂钩事件。 有关详细信息,请参阅“Webhook 事件和有效负载”。
响应� �式
默认� �式是现有接收后挂钩应具有的� �式:作为 POST 中的 payload
参数发送的 JSON 正文。 还可以指定接收带有 Accept
� �头或 .json
扩展名的原始 JSON 正文。
Accept: application/json
https://github.com/{owner}/{repo}/events/push.json
回调 URL
回叫 URL 可以使用 http://
协议。
# Send updates to postbin.org
http://postbin.org/123
订阅
GitHub PubSubHubbub 终结点为:http(s)://HOSTNAME/api/v3/hub
。 使用 cURL 的成功请求如下所示:
curl -u "user" -i \
http(s)://HOSTNAME/api/v3/hub \
-F "hub.mode=subscribe" \
-F "hub.topic=https://github.com/{owner}/{repo}/events/push" \
-F "hub.callback=http://postbin.org/123"
PubSubHubbub 请求可以多次发送。 如果挂钩已经存在,它将� �据请求进行修改。
参数
名称 | 类型 | 说明 |
---|---|---|
hub.mode | string | “必需”。 subscribe 或 unsubscribe 。 |
hub.topic | string | “必需”。 要订阅的 GitHub 仓库的 URI。 路径的� �式必须为 /{owner}/{repo}/events/{event} 。 |
hub.callback | string | 要接收主题更新的 URI。 |
hub.secret | string | 用于生成� 出正文内容的哈希签名的共享密钥。 可通过比较原始请求正文与 X-Hub-Signature 或 X-Hub-Signature-256 � �头。 有关更多详细信息,请参阅 PubSubHubbub 文档。 |