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 集成,请创建订阅。 在许多情况下,还需要配置目标服务。 有关详细信息,请参阅要集成的服务的文档。
转到项目,选择 “项目设置”,然后选择 “服务挂钩”。
选择“创建订阅”。
选择要集成的服务。
选择要触发的事件以及任何适用的筛选器。
选择要在目标服务上运行的操作。
注意
可执行的操作取决于您选择的事件类型。
若要确认设置正确,请测试订阅,然后完成向导。
常见问题
问:设置订阅需要哪些权限?
答:需要 “编辑订阅 ”和 “查看订阅 ”权限。 默认情况下,只有项目管理员具有这些权限。 若要直接向其他用户授予他们,可以使用 命令行工具 或 安全 REST API。
若要向组授予 视图 权限,请参阅 服务挂钩中组的“设置视图”权限。
问:授予“编辑订阅”和“查看订阅”权限的安全影响是什么?
答:拥有 “编辑订阅 ”和 “查看订阅 ”权限的用户可以:
- 查看项目中的所有订阅。
- 请参阅项目中所有订阅的通知历史记录。
- 在项目中创建任何类型的服务挂钩订阅。
如果用户为没有权限访问的资源设置订阅,则不会触发订阅。
例如,假设您创建一个订阅,以便在特定区域路径中的工作项被更新时发送通知。 如果无权访问该区域路径中的工作项,则不会发送通知。 但是,如果其他用户可以访问工作项,您可以查看关于他们更新提醒的订阅通知历史记录。
问:是否可以以编程方式为项目创建服务挂钩订阅?
答:是的。 有关详细信息,请参阅 以编程方式创建服务挂钩订阅。
问:授权后是否可以删除应用对组织的访问权限?
答:是的。 可以从配置文件中撤销授权。
转到 https://visualstudio.microsoft.com 。 选择您的个人资料照片,然后选择Visual Studio 个人资料。
请在管理授权时,确保从 Visual Studio 站点https://visualstudio.microsoft.com开始。 在该站点中,可以访问授权管理功能的正确实现。 不要从你们的组织
https://dev.azure.com/{organization-name}
开始。选择“ 管理授权”。
撤销不再需要允许的任何授权。
问:为什么我不能再为 HipChat 设置服务挂钩?
答:Atlassian 不再支持 HipChat。 有关详细信息,请参阅 Atlassian 常见问题解答。