与服务挂钩集成

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

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

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

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

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

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

服务挂钩关系图。

注意

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

可用服务

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

服务 支持事件 支持的操作
应用中心 工作项已更新 发送通知。 订阅通过 App Center 进行管理。
AppVeyor 推送的代码 触发 AppVeyor 生成。 订阅通过 AppVeyor 进行管理。
Azuqua All 将事件发布到 FLO。 订阅通过 Azuqua 进行管理。
Azure 应用服务 推送的代码 部署 Web 应用。 订阅通过Azure App 服务进行管理。
Azure 服务总线 All 将消息发送到通知中心、服务总线队列或服务总线主题。 订阅通过Azure App 服务进行管理。
Azure 存储 All 在存储队列中插入消息。
生成已完成,代码已推送 对生成进行排队。
Datadog All 在 Datadog 中发布事件。
Grafana 已完成发布部署 向 Grafana 数据库添加批注。
Jenkins 生成已完成,代码推送,PR 合并尝试,发布部署已完成 触发泛型或 Git 生成。
Microsoft Teams All 将消息发布到频道。 订阅在 Microsoft Teams 中管理。
MyGet 生成已完成,已推送代码 将 NuGet 包发布到 MyGet。 触发 MyGet 生成。 订阅由 MyGet 管理。
Office 365 All 向组发布消息。
Slack All 将消息发布到频道。
Trello All 创建卡片或列表。
UserVoice 已创建的工作项,工作项已更新 发送链接的工作项事件。 订阅通过 UserVoice 进行管理。
Web 挂钩 All 通过 HTTP 发布。
工作区消息应用 All 发送通知。 订阅通过工作区消息应用进行管理。
Zapier All 发送通知。 订阅通过 Zapier 进行管理。
Zendesk 对工作项进行批注 在票证中创建私人注释。
服务 支持事件 支持的操作
Azure 服务总线 All 将消息发送到通知中心、服务总线队列或服务总线主题。 订阅通过Azure App 服务进行管理。
Azure 存储 All 在存储队列中插入消息。
生成已完成,代码已推送 对生成进行排队。
Datadog All 在 Datadog 中发布事件。
Grafana 已完成发布部署 向 Grafana 数据库添加批注。
Jenkins 生成已完成,代码推送,PR 合并尝试,发布部署已完成 触发泛型或 Git 生成。
Microsoft Teams All 将消息发布到频道。 订阅在 Microsoft Teams 中管理。
Office 365 All 向组发布消息。
Slack All 将消息发布到频道。
Trello All 创建卡片或列表。
[UserVoice]()https://www.uservoice.com 已创建的工作项,工作项已更新 发送链接的工作项事件。 订阅通过 UserVoice 进行管理。
Web 挂钩 All 通过 HTTP 发布。
Zendesk 对工作项进行批注 在票证中创建私人注释。

创建订阅

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

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

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

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

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

    选择要集成的服务

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

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

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

    注意

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

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

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

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

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

常见问题

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

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

若要授予组的“查看”权限,请参阅“服务挂钩”页中组的“设置视图”权限。

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

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

例如: 如果无法访问这些工作项,则为区域路径 XYZ 中的工作项更新事件创建的订阅不会发送通知。 但是,可以看到有权访问这些工作项的其他用户的通知历史记录。

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

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

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

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

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

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

  2. 管理授权。

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

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

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

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

答:Atlassian 正式放弃了对 HipChat 的支持。 有关详细信息,请参阅公告