Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
当 Azure DevOps 项目中发生事件时,可以使用服务挂钩在其他服务上运行任务。
例如,在 Azure DevOps 中创建工作项时,可以使用服务挂钩在 Trello 中自动创建卡片。 或者在生成失败时自动将推送通知发送到团队的移动设备。 还可以在自定义应用和服务中使用服务挂钩,作为在项目中发生事件时驱动活动的更高效方法。
服务挂钩的工作原理是什么?
服务挂钩 发布者 定义一组 可以订阅的事件 。 订阅侦听这些事件,并基于事件定义要执行的操作。
订阅还面向 使用者,这些服务是可在事件发生时运行其自己的操作的外部服务。
注意
若要使用服务挂钩,必须允许特定的 IP 地址范围用于到服务终结点的入站连接。 服务终结点是提供给服务挂钩的一组参数。 有关详细信息,请参阅 IP 地址和范围限制。
可用服务
以下服务可作为服务挂钩的目标。 有关与 Azure DevOps 集成的其他应用和服务的详细信息,请参阅 Visual Studio Marketplace。
| 服务 | 支持的事件 | 支持的操作 | 订阅管理 |
|---|---|---|---|
| Visual Studio App Center | 工作项已更新 | 发送通知 | 在 App Center 中 |
| AppVeyor | 推送的代码 | 触发 AppVeyor 生成 | 在 AppVeyor 中 |
| Azuqua | All | 将事件发布到流语言对象(FLO) | 在 Azuqua 中 |
| Azure 应用程序服务 | 代码已推送 | 部署 Web 应用 | 在应用服务中 |
| Azure 服务总线 | All | 将消息发送到 Azure 通知中心、服务总线队列或服务总线主题 | 在 Azure DevOps 中 |
| Azure 存储 | All | 在存储队列中插入消息 | 在 Azure DevOps 中 |
| 竹 | 构建完成,代码已推送 | 将生成排入队列 | 在 Azure DevOps 中 |
| Datadog | All | 在 Datadog 中发布事件 | 在 Azure DevOps 中 |
| 格拉法纳 | 已完成发布部署 | 向 Grafana 数据库添加批注 | 在 Azure DevOps 中 |
| 詹金斯 | 生成完成,代码推送,PR 合并尝试 | 触发通用或 Git 生成 | 在 Azure DevOps 中 |
| Microsoft 团队 | All | 将消息发布到频道 | 在 Teams 中 |
| MyGet | 构建已完成,代码已推送 | 将 NuGet 包发布到 MyGet,触发 MyGet 生成 | 在 MyGet 中 |
| Office 365 | All | 向组发布消息 | 在 Office 365 中 |
| Slack | All | 将消息发布到频道 | 在 Azure DevOps 中 |
| Trello | All | 创建卡片或列表 | 在 Azure DevOps 中 |
| UserVoice | 工作项已创建,工作项已更新 | 发送链接的工作项事件 | 在 UserVoice 中 |
| Webhook | All | 通过 HTTP 发布请求 | 在 Azure DevOps 中 |
| 工作区消息传送应用 | All | 发送通知 | 在工作区消息应用中 |
| Zapier | All | 发送通知 | 在 Zapier 中 |
| Zendesk | 对工作项进行批注 | 在票证中创建私人批注 | 在 Azure DevOps 中 |
| 服务 | 支持的事件 | 支持的操作 | 订阅管理 |
|---|---|---|---|
| Azure 服务总线 | All | 将消息发送到 Azure 通知中心、服务总线队列或服务总线主题 | 在 Azure DevOps 中 |
| Azure 存储 | All | 在存储队列中插入消息 | 在 Azure DevOps 中 |
| 竹 | 生成已完成,代码已推送 | 将生成排入队列 | 在 Azure DevOps 中 |
| Datadog | All | 在 Datadog 中发布事件 | 在 Azure DevOps 中 |
| 格拉法纳 | 已完成发布部署 | 向 Grafana 数据库添加批注 | 在 Azure DevOps 中 |
| 詹金斯 | 生成完成,代码推送,PR 合并尝试 | 触发通用或 Git 生成 | 在 Azure DevOps 中 |
| Microsoft 团队 | All | 将消息发布到频道 | 在 Teams 中 |
| Office 365 | All | 向组发布消息 | 在 Office 365 中 |
| Slack | All | 将消息发布到频道 | 在 Azure DevOps 中 |
| Trello | All | 创建卡片或列表 | 在 Azure DevOps 中 |
| UserVoice | 工作项已创建,工作项已更新 | 发送链接的工作项事件 | 在 UserVoice 中 |
| Webhook | All | 通过 HTTP 发布请求 | 在 Azure DevOps 中 |
| Zendesk | 对工作项进行批注 | 在票证中创建私人批注 | 在 Azure DevOps 中 |
创建订阅
若要将其中一项服务与 Azure DevOps 集成,请创建订阅。 在许多情况下,还需要配置目标服务。 有关详细信息,请参阅要集成的服务的文档。
转到项目,选择 “项目设置”,然后选择 “服务挂钩”。
选择“创建订阅”。
选择要集成的服务。
选择要触发的事件以及任何适用的筛选器。
选择要在目标服务上运行的操作。
注意
可执行的操作取决于您选择的事件类型。
要确认设置正确,请测试订阅,然后完成向导。
常见问题
问:设置订阅需要哪些权限?
答:需要 “编辑订阅 ”和 “查看订阅 ”权限。 默认情况下,只有项目管理员具有这些权限。 若要直接向其他用户授予他们,可以使用 命令行工具 或 安全 REST API。
要为组授予查看权限,请参阅在服务挂钩中为组设置查看权限。
问:授予“编辑订阅”和“查看订阅”权限的安全影响是什么?
答:拥有 “编辑订阅 ”和 “查看订阅 ”权限的用户可以:
- 查看项目中的所有订阅。
- 请参阅项目中所有订阅的通知历史记录。
- 在项目中创建任何类型的服务挂钩订阅。
如果用户为没有权限访问的资源设置订阅,则不会触发订阅。
例如,假设您创建一个订阅,以便在特定区域路径中的工作项被更新时发送通知。 如果无权访问该区域路径中的工作项,则不会发送通知。 但是,如果其他用户有权访问工作项,你可以看到订阅的通知历史记录,提醒他们更新。
问:是否可以以编程方式为项目创建服务挂钩订阅?
答:是的。 有关详细信息,请参阅 以编程方式创建服务挂钩订阅。
问:授权后是否可以删除应用对组织的访问权限?
答:是的。 可以从个人资料中撤销授权。
转到 https://visualstudio.microsoft.com。 选择您的个人资料照片,然后选择Visual Studio 个人资料。
在管理授权时,请确保从Visual Studio站点https://visualstudio.microsoft.com开始。 在该站点中,可以访问授权管理功能的正确实现。 不要从你的组织开始 (
https://dev.azure.com/{organization-name})。选择“ 管理授权”。
撤销不再需要允许的任何授权。
问:为什么我不能再为 HipChat 设置服务挂钩?
答:Atlassian 不再支持 HipChat。 有关详细信息,请参阅 Atlassian 常见问题解答。