将 Azure Pipelines 与 Slack 配合使用

Azure DevOps Services

本文介绍如何使用适用于 SlackAzure Pipelines 应用监视管道事件。 可以建立和管理管道事件的订阅,例如生成、发布和挂起的审批。 这些事件的通知将直接传送到 Slack 通道。

注意

此功能仅适用于 Azure DevOps Services。 通常,新功能首先会在云服务中引入,然后在 Azure DevOps Server 的下一个主要版本或更新中本地提供。 有关详细信息,请参阅 Azure DevOps 功能时间线

先决条件

  • 有权将应用安装到 Slack 工作区的 Slack 帐户。
  • 具有项目集合管理员或项目管理员权限的 Azure DevOps 项目。

安装 Azure Pipelines 应用

将 Azure Pipelines Slack 应用 安装到 Slack 工作区。 安装应用后,会看到以下欢迎消息。 Enter /azpipelines 开始与应用交互。

显示 Azure Pipelines 应用欢迎消息的屏幕截图。

连接到管道

在 Slack 工作区中安装应用后,可以将应用连接到要监视的任何管道。 在运行任何命令之前,必须向 Azure Pipelines 进行身份验证。

显示登录提示消息的屏幕截图。

订阅管道

若要开始监视项目中的所有管道,请在通道中输入 /azpipelines subscribe <project url> ,替换为 <project url> Azure DevOps 项目 URL。 项目 URL 可以链接到项目内的任何页面,例如 /azpipelines subscribe https://dev.azure.com/myorg/myproject/管道页除外。

可以使用 监视特定管道 /azpipelines subscribe <pipeline url>。 管道 URL 可以链接到管道中其 URL 包含 definitionIdbuildId/releaseId 的任何页面。 例如:

  • /azpipelines subscribe https://dev.azure.com/myorg/myproject/_build?definitionId=123
  • /azpipelines subscribe https://dev.azure.com/myorg/myproject/_release?definitionId=123&view=mine&_a=releases

默认情况下,该 subscribe 命令会订阅以下通知:

  • 对于 YAML 管道:
    • 运行阶段状态已更改
    • 等待审批的运行阶段
  • 对于经典生成管道, 已完成生成
  • 对于经典发布管道:
    • 已启动发布部署
    • 发布部署已完成
    • 正在等待发布部署审批

显示通知示例的屏幕截图。

管理订阅

若要管理通道的订阅,请输入 /azpipelines subscriptions。 此命令列出了频道的所有当前订阅,并允许添加或删除订阅。

显示订阅列表的屏幕截图。

注意

团队管理员无法删除或修改项目管理员创建的订阅。

自定义订阅

默认订阅未应用任何筛选器,但可以根据偏好自定义这些订阅。 例如,你可能只想接收失败的内部版本或部署到生产的通知。 可以应用筛选器来自定义频道中收到的消息。

若要自定义订阅,请执行以下操作:

  1. 运行 /azpipelines subscriptions 命令以列出所有订阅。
  2. 选择“添加订阅”
  3. 选择要订阅的事件,然后选择所需的配置。
  4. 选择“保存”。

例如,若要仅获取失败版本的通知,请选择“生成”状态下的“失败”。

显示如何自定义订阅的屏幕截图。

批准部署

可以在 Slack 通道中批准部署,而无需转到 Azure Pipelines。 订阅 运行阶段,等待 YAML 管道的审批 通知或 经典版本的发布部署审批挂起 通知。 订阅管道时,默认情况下会创建这两个订阅。

显示 Slack 中的管道审批的屏幕截图。

借助适用于 Slack 的 Azure Pipelines 应用,可以处理 Azure Pipelines 门户中提供的所有检查和审批方案。 这些方案包括单个审批者、多个审批者和基于团队的审批。 可以单独或代表团队批准请求。

显示 Slack 中审批的部署前管道的屏幕截图。

删除所有订阅

若要整理通道,可以使用 /azpipelines unsubscribe all <project url> 该命令取消订阅项目中的所有管道。 例如 /azpipelines unsubscribe all https://dev.azure.com/myorg/myproject

重要

只有项目管理员可以运行此命令。

命令参考

适用于 Slack 的 Azure Pipelines 应用支持以下命令:

命令 说明
/azpipelines subscribe <pipeline url or project url> 订阅项目中的管道或所有管道并接收通知。
/azpipelines subscriptions 添加或删除此频道的订阅。
/azpipelines feedback 报告问题或建议功能。
/azpipelines help 获取有关命令的帮助。
/azpipelines signin 登录到 Azure Pipelines 帐户。
/azpipelines signout 注销 Azure Pipelines 帐户。
/azpipelines unsubscribe all <project url> 从频道中删除所有项目管道及其关联的订阅。

专用通道中的通知

Azure Pipelines 应用还可以帮助你监视专用通道中的管道活动。 需要使用 将机器人邀请到专用频道 /invite @azpipelines。 添加机器人后,可以按照与公共频道相同的方式配置和控制通知。

条件和限制

  • 只能在 Azure DevOps Services 中使用适用于 Slack 的 Azure Pipelines 应用。
  • 若要设置订阅,你必须是包含管道的项目的管理员。
  • 直接消息中不支持通知。
  • 不支持在完成应用的审批策略之前具有审批者的重新验证标识的部署审批
  • 若要使用该应用,必须在 Azure DevOps 组织设置>安全>策略中启用通过 OAuth 进行第三方应用程序访问。

故障排除

如果在使用适用于 Slack 的 Azure Pipelines 应用时遇到以下错误,请尝试本部分中的过程。

很抱歉,出现了问题。 请重试。

Azure Pipelines 应用使用 OAuth 身份验证协议,并且需要启用通过 OAuth 访问第三方应用程序。 若要启用此设置,请导航到“组织设置>安全>策略”,并通过 OAuth 启用第三方应用程序访问。

显示如何启用通过 OAuth 访问第三方应用程序的屏幕截图。

配置失败。 请确保组织存在,并且你有足够的权限。

  1. 通过导航到 https://aka.ms/VsSignoutAzure DevOps 注销。

  2. 在专用/隐身浏览器窗口中,导航到 https://aex.dev.azure.com/me 并登录。 请确保选择包含包含管道的组织的目录。

    显示如何选择管道目录的屏幕截图。

  3. 在同一浏览器中,打开一个新选项卡并转到 https://slack.com。 使用 Web 客户端登录到工作区,然后运行 /azpipelines signout 后跟 /azpipelines signin

  4. 选择 Sign in 按钮。 如果重定向到同意页,请验证电子邮件地址旁显示的目录是否与你登录的目录匹配。