将 Azure Pipelines 与 Slack 配合使用

Azure DevOps Services

使用适用于 Slack 的 Azure Pipelines 应用,Slack 用户可以轻松跟踪其管道中发生的事件。 该应用允许用户建立和监督各种管道事件(例如生成、发布、待审批等)的订阅。 然后将这些事件的通知直接传送到用户的 Slack 通道

注意

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

先决条件

  • 在 Slack 中,需要具有将应用安装到 Slack 工作区的权限。
  • 对于 Azure DevOps,需要在项目集合管理员或项目管理员组中设置 Slack 订阅。

安装 Azure Pipelines 应用

导航到 Azure Pipelines Slack 应用,将 Azure Pipelines 应用安装到你的 Slack 工作区。 添加后,你会看到来自该应用的欢迎消息,如下所示。 使用 /azpipelines 句柄开始与该应用交互。

A screenshot showing the Azure Pipelines app welcome message.

连接到管道

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

A screenshot showing the sign-in prompt message.

若要开始监视项目中的所有管道,请在通道内使用以下斜杠命令:

/azpipelines subscribe [project url]

项目 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 管道
“生成已完成”通知 “发布部署已开始”、“发布部署已完成”和“发布部署待审批”通知 “运行阶段状态已更改”和“运行阶段等待审批”通知

A screenshot showing notification example.

管理订阅

若要管理通道的订阅,请使用以下命令:/azpipelines subscriptions

此命令列出通道的所有当前订阅,并允许添加或删除订阅。

注意

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

A screenshot showing a list of subscriptions.

自定义订阅

默认情况下,在订阅管道时,会生成多个未应用任何筛选器的订阅。 但是,用户通常希望根据自己的喜好来个性化这些订阅。 例如,用户可能希望仅在生成失败或部署到生产环境时收到通知。 Azure Pipelines 应用提供了用于应用筛选器的选项,使用户能够自定义他们在通道中接收的消息。 若要自定义订阅,请执行以下操作:

  1. 运行 /azpipelines subscriptions 命令以列出所有订阅。

  2. 选择“添加订阅”

  3. 选择要订阅的事件,然后选择所需的配置。

  4. 完成时选择“保存” 。

示例:仅在生成失败时接收通知

A screenshot showing a list how to add a custom new subscription.

批准部署

可以在 Slack 通道中审批部署,而无需导航到 Azure Pipelines 门户,方法是订阅“发布部署待审批”通知(经典发布)或“运行阶段等待审批”通知(YAML 管道)。 在订阅管道时,默认会创建这两个订阅。

A screenshot showing pipeline approval in Slack.

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

A screenshot showing a predeployment pipeline approved in Slack.

删除所有订阅

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

/azpipelines unsubscribe all [project url]

重要

只能由项目管理员执行此命令。

命令参考

下面是适用于 Slack 的 Azure Pipelines 应用支持的所有命令:

斜杠命令 功能
/azpipelines subscribe [pipeline url/ 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 应用。
  • 用户必须是包含该管道的项目的管理员才能设置订阅
  • 直接消息中目前不支持通知
  • 不支持应用了“在完成审批之前重新验证审批者的标识”策略的部署审批
  • 必须启用“通过 OAuth 访问第三方应用程序”才能在 Azure DevOps 中接收组织通知(“组织设置”->“安全”->“策略”)

故障排除

如果在使用适用于 Slack 的 Azure Pipelines 应用时遇到以下错误,请执行本部分所述的过程。

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

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

A screenshot showing how to enable third party access via OAuth.

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

导航以下此 URL 以从 Azure DevOps 注销:https://aka.ms/VsSignout

打开私密/隐身模式的浏览器窗口,然后导航到 https://aex.dev.azure.com/me 并登录。 选择包含你要订阅的管道所在组织的目录。

A screenshot showing how to select your pipeline directory.

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

选择 Sign in 按钮,随即你将重定向到同意页,如以下示例所示。 确认电子邮件地址旁边显示的目录与在上一步骤中选择的目录匹配。 选择“接受”以完成登录过程。

A screenshot showing how to allow pipelines slack integration.