与服务挂钩集成

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

服务挂钩允许在 Azure DevOps 中的项目中发生事件时在其他服务上运行任务。

例如,可以在创建工作项时在 Trello 中创建卡,或者在生成失败时向团队的移动设备发送推送通知。 还可以在自定义应用和服务中使用服务挂钩,作为在项目中发生事件时驱动活动的更高效方法。

服务挂钩的工作原理是什么?

服务挂钩 发布者 定义一组 可以订阅的事件订阅侦听这些事件,并定义基于事件执行的操作。

订阅还面向 使用者,这些服务是可在事件发生时运行其自己的操作的外部服务。

服务挂钩关系图。

注意

服务挂钩需要允许 IP 范围才能连接到服务终结点。 服务终结点是提供给服务挂钩的属性集。 有关详细信息,请参阅 允许的地址列表和网络连接、IP 地址和范围限制

可用服务

以下服务可用作服务挂钩的目标。 有关与 Azure DevOps 集成的其他应用和服务的详细信息,请转到 Visual Studio Marketplace

服务 支持事件 支持的操作
应用中心 工作项已更新 发送通知
AppVeyor 推送的代码 触发 AppVeyor 生成
Azuqua 全部 将事件发布到 FLO
Azure 应用服务 推送的代码 部署 Web 应用
Azure 服务总线 全部 将消息发送到通知中心、服务总线队列或服务总线主题
Azure 存储 全部 在存储队列中插入消息
生成已完成,代码已推送 对生成进行排队
Campfire 全部 向聊天室发布消息
Datadog 全部 在 Datadog 中发布事件
Grafana 已完成发布部署 向 Grafana 数据库添加批注
HipChat (不再支持)
HockeyApp 工作项已更新 发送通知
Jenkins 生成已完成,代码推送,PR 合并尝试,发布部署已完成 触发泛型或 Git 生成
Microsoft Teams 全部 将消息发布到频道
MyGet 生成已完成,已推送代码 将 NuGet 包发布到 MyGet,触发 MyGet 生成
Office 365 全部 向组发布消息
Slack 全部 将消息发布到频道
Trello 全部 创建卡或列表
UserVoice 已创建或更新的工作项 发送链接的工作项事件
Web 挂钩 全部 通过 HTTP 发布
工作区消息应用 全部 发送通知
Zapier 全部 发送通知
Zendesk 对工作项进行批注 在票证中创建私人批注

创建订阅

将其中一项服务与 Azure DevOps 集成时,必须创建新的订阅。 在许多情况下,还需要在其他服务中执行一些工作。 有关具体详细信息,检查你感兴趣的服务的信息。

  1. 在 Web 访问中打开项目的管理页面。

    突出显示的“项目设置”按钮的屏幕截图。
  2. 运行向导以创建订阅。

    突出显示的按钮“创建订阅”的屏幕截图。

  3. 选择要与之集成的服务。

    选择要集成的服务

  4. 选择要触发的事件以及任何适用的筛选器。

    选择要触发的事件和任何筛选器

  5. 选择要在目标服务上运行的操作。

    注意

    根据所选的事件类型,可用操作列表可能会受到限制。

    显示为目标服务选择操作的屏幕截图。

  6. 若要确认设置正确,请测试订阅,然后完成向导。

    显示测试通知 1 的屏幕截图。

    显示测试通知 2 的屏幕截图。

常见问题

问:设置订阅需要哪些权限?

答: 编辑订阅查看订阅。 默认情况下,只有项目管理员具有这些权限。 若要将这些权限直接授予其他用户,可以使用命令行工具安全性 REST API。

问:授予“编辑订阅”和“查看订阅”权限的安全影响是什么?

答:具有这些权限的用户可以查看在项目中创建的所有订阅以及这些订阅的通知历史记录。 然后,该用户可以在该项目中创建任何类型的服务挂钩订阅。 如果用户为不具有访问权限的资源设置订阅,则不会触发订阅。

例如: 如果你无权访问区域路径 XYZ 中的工作项,并且你设置了工作项更新事件的订阅,则不会收到有关区域路径 XYZ 中工作项更新的通知。 但是,如果另一个用户有权访问区域路径 XYZ 中的工作项,则会收到这些“工作项更新”事件,则可以看到其他用户事件的通知历史记录,其中包括您无权访问的工作项数据。

问:是否可以以编程方式为项目创建服务挂钩订阅?

答: 是的。 有关详细信息,请参阅 创建服务挂钩订阅

问:我能否在授权应用后删除对组织的访问权限?

答: 是的。 可以从配置文件中撤销授权。

  1. https://visualstudio.microsoft.com/中转到个人资料页面。

    请确保从 Visual Studio 站点(https://visualstudio.microsoft.com/)而不是组织(https://dev.azure.com/{orgName})开始,因为从组织访问的配置文件会转到授权管理功能的错误实现。

  2. 管理授权。

    显示突出显示的“管理应用程序”按钮的屏幕截图。

  3. 撤销不再需要允许的任何授权。

    显示授权的“撤销”选项的屏幕截图。

问:为什么我们不能再为 HipChat 设置服务挂钩了?

答:Atlassian 正式放弃了对 HipChat 的支持。 在此处查看有关该公告的详细信息。