与服务挂钩集成

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

当 Azure DevOps 项目中发生事件时,可以使用服务挂钩在其他服务上运行任务。

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

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

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

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

图示,其中带有从发布者框到订阅框的标记为“事件”的箭头,以及从订阅框到消费者和动作框的箭头。

注意

若要使用服务挂钩,必须允许特定 IP 地址范围的入站连接以访问服务终结点。 服务终结点是提供给服务挂钩的一组参数。 有关详细信息,请参阅 IP 地址和范围限制

可用服务

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

服务 支持事件 支持的操作 订阅管理
Visual Studio App Center 工作项已更新 发送通知 在 App Center 中
AppVeyor 推送的代码 触发 AppVeyor 构建 在 AppVeyor 中
Azuqua 全部 将事件发布到流语言对象(FLO) 在 Azuqua 中
Azure 应用程序服务 推送的代码 部署 Web 应用 在应用服务中
Azure 服务总线 全部 将消息发送到 Azure 通知中心、服务总线队列或服务总线主题 在 Azure DevOps 中
Azure 存储 全部 在存储队列中插入消息 在 Azure DevOps 中
生成已完成,已推送代码 对生成进行排队 在 Azure DevOps 中
Datadog 全部 在 Datadog 中发布事件 在 Azure DevOps 中
格拉法纳 已完成发布部署 向 Grafana 数据库添加批注 在 Azure DevOps 中
詹金斯 生成已完成,代码推送,PR 合并尝试 触发泛型或 Git 生成 在 Azure DevOps 中
Microsoft 团队 全部 将消息发布到频道 在 Teams 中
MyGet 生成已完成,已推送代码 将 NuGet 包发布到 MyGet,触发 MyGet 生成 在 MyGet 中
Office 365 全部 向组发布消息 在 Office 365 中
Slack 全部 将消息发布到频道 在 Azure DevOps 中
Trello 全部 创建卡片或列表 在 Azure DevOps 中
UserVoice 已创建的工作项,工作项已更新 发送关联的工作项事件 在UserVoice
Webhook 全部 通过 HTTP 发布请求 在 Azure DevOps 中
工作区消息传送应用 全部 发送通知 在职场消息应用程序中
Zapier 全部 发送通知 在 Zapier 中
Zendesk 对工作项进行批注 在票证中创建私人批注 在 Azure DevOps 中
服务 支持事件 支持的操作 订阅管理
Azure 服务总线 全部 将消息发送到 Azure 通知中心、服务总线队列或服务总线主题 在 Azure DevOps 中
Azure 存储 全部 在存储队列中插入消息 在 Azure DevOps 中
生成已完成,已推送代码 对生成进行排队 在 Azure DevOps 中
Datadog 全部 在 Datadog 中发布事件 在 Azure DevOps 中
格拉法纳 已完成发布部署 向 Grafana 数据库添加批注 在 Azure DevOps 中
詹金斯 生成已完成,代码推送,PR 合并尝试 触发泛型或 Git 生成 在 Azure DevOps 中
Microsoft 团队 全部 将消息发布到频道 在 Teams 中
Office 365 全部 向组发布消息 在 Office 365 中
Slack 全部 将消息发布到频道 在 Azure DevOps 中
Trello 全部 创建卡片或列表 在 Azure DevOps 中
UserVoice 已创建的工作项,工作项已更新 发送关联的工作项事件 在UserVoice中
Webhook 全部 通过 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 常见问题解答