与服务挂钩集成

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 集成,请创建订阅。 在许多情况下,还需要配置目标服务。 有关详细信息,请参阅要集成的服务的文档。

  1. 转到项目,选择 “项目设置”,然后选择 “服务挂钩”。

    显示 Azure DevOps 项目的屏幕截图。在一侧,突出显示了项目设置和服务挂钩。

  2. 选择“创建订阅”。

    Azure DevOps 项目的“服务挂钩”页的屏幕截图。突出显示了“创建订阅”按钮。

  3. 选择要集成的服务。

    “服务”对话框的屏幕截图。列出了许多服务,选择了 Trello,并且 Trello 的说明可见。

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

    “触发器”对话框的屏幕截图。已选择“代码推送”事件。筛选器在存储库和组上设置。

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

    注意

    可执行的操作取决于您选择的事件类型。

    “操作对话框”的屏幕截图。选择“创建卡片”。可用字段用于指定令牌、看板和其他设置。

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

    “测试通知”窗口的屏幕截图。在“摘要”选项卡中,有关推送的消息显示“成功”状态。

    “测试通知”窗口的屏幕截图。“请求”选项卡显示对 Trello 的 POST 请求,其中包含已推送的提交的相关信息。

常见问题

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

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

要为组授予查看权限,请参阅在服务挂钩中为组设置查看权限

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

答:拥有 “编辑订阅 ”和 “查看订阅 ”权限的用户可以:

  • 查看项目中的所有订阅。
  • 请参阅项目中所有订阅的通知历史记录。
  • 在项目中创建任何类型的服务挂钩订阅。

如果用户为没有权限访问的资源设置订阅,则不会触发订阅。

例如,假设您创建一个订阅,以便在特定区域路径中的工作项被更新时发送通知。 如果无权访问该区域路径中的工作项,则不会发送通知。 但是,如果其他用户有权访问工作项,你可以看到订阅的通知历史记录,提醒他们更新。

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

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

问:授权后是否可以删除应用对组织的访问权限?

答:是的。 可以从个人资料中撤销授权。

  1. 转到 https://visualstudio.microsoft.com。 选择您的个人资料照片,然后选择Visual Studio 个人资料

    在管理授权时,请确保从Visual Studio站点https://visualstudio.microsoft.com开始。 在该站点中,可以访问授权管理功能的正确实现。 不要从你的组织开始 (https://dev.azure.com/{organization-name})。

  2. 选择“ 管理授权”。

    Visual Studio 配置文件页的屏幕截图,其中包含用户的联系信息。在“授权”部分中,突出显示了“管理应用程序”。

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

    “授权”对话框的屏幕截图。权限列表可见,并突出显示了“撤销”链接。

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

答:Atlassian 不再支持 HipChat。 有关详细信息,请参阅 Atlassian 常见问题解答