Webhook
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
本文介绍 Webhook 以及如何为 Azure DevOps 项目设置它们。 Webhook 提供了将 Azure DevOps 事件的 JSON 表示形式发送到任何具有公共终结点的服务的方法。
注意
Azure DevOps 不收取设置服务挂钩或与外部服务集成的费用。 有关与服务相关的定价,请参阅特定服务的站点。
先决条件
需要满足以下先决条件才能管理 Azure DevOps 组织的 Webhook:
组织中的所有者 或 项目集合管理员 角色。
组织中的项目,以及一个包含要向其发送 Azure DevOps 事件的公共 HTTP 或 HTTPS 终结点的服务。
重要
建议仅使用 HTTPS 终结点。 HTTP 有可能发送专用数据,包括身份验证标头,在事件有效负载中未加密。 必须在 Webhook 上使用 HTTPS 进行基本身份验证。
将 JSON 表示形式发送到服务
在 Azure DevOps 项目中,转到 Project 设置>服务挂钩。
https://<organization-name>/<project-name>/_settings/serviceHooks
在 “服务挂钩 ”页上,选择 + 图标或 “创建订阅”。
在 “服务 ”屏幕上,选择 “Web 挂钩 ”,然后选择“ 下一步”。
在 “触发器 ”屏幕上,选择要触发 Webhook 的 Azure DevOps 事件,然后选择“ 下一步”。 有关 Azure DevOps 使用者发布的 JSON 有效负载的详细信息,请参阅 服务挂钩事件。
在 “操作” 屏幕上,配置目标 URL 以及事件发生时要执行的操作。 有关要发送的资源详细信息、要发送的消息和要发送的详细消息的详细信息,请参阅要发送的资源详细信息。
注意
Webhook 不能以 localhost(环回)或特殊范围 IPv4/IPv6 地址为目标。
选择“测试”以测试服务挂钩订阅。
测试成功完成后,关闭通知屏幕,然后在“操作”屏幕上选择“完成”。
现在已设置 Webhook。 转到目标服务以查看 JSON 表示形式。
提示
还可以以编程方式创建 Webhook。 有关详细信息,请参阅 以编程方式创建服务挂钩订阅。
要发送的资源详细信息
要发送的资源详细信息、要发送的消息以及“操作”窗格中用于发送设置的详细消息控制要发送的 JSON 有效负载的大小。 要发送 的资源详细信息控制要发送的资源量。 默认值为 “全部”,但你也可以选择发送 “最小”,仅发送 URL 和 ID 等键字段,或 “无”。
对于调用方不需要太多或任何有关资源的信息,因为它依赖于消息或详细消息本身,因此无 和 最小值 非常有用。 无 和 最小 也可用于安全原因。 调用方必须回调到 Azure DevOps Services,并通过正常的安全和权限检查来获取有关资源的更多详细信息。
以下示例 JSON 显示了有关资源的最小详细信息:
{
"eventType": "git.push",
...
"messages": {
"text": "...",
"html": "...",
"markdown": "..."
},
"detailedMessage": {
"text": "...",
"html": "...",
"markdown": "..."
},
"resource": {
"id": "...",
"url": "https://...",
"name": "...",
"field1:": "..."
}
}