使用 Slack 创建用于 Azure DevOps 的服务挂钩

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文介绍如何将消息发布到 Slack,以响应 Azure DevOps 组织中的事件,例如已完成的生成、代码更改、拉取请求、发布、工作项更改等。

注意

对于 Azure DevOps Services,建议使用以下一套应用,这些应用提供与 Slack 集成的功能。

适用于 Slack 的 Azure Boards 应用

适用于 Slack 的 Azure Boards 应用有助于从 Slack 通道轻松创建和监视工作项。 可以使用斜杠命令创建工作项,或使用消息操作将通道中的对话转换为工作项。 还可以设置和管理订阅,以在创建或更新工作项时在其频道中获取通知。

适用于 Slack 的 Azure Pipelines 应用

适用于 SlackAzure Pipelines 应用有助于轻松监视管道中的事件。 你可以为已完成的生成、发布、挂起的审批等从应用设置和管理订阅,并在其频道中获取这些事件的通知。 还可以从频道批准发布部署。

适用于 Slack 的 Azure Repos 应用

适用于 SlackAzure Repos 应用有助于轻松监视存储库中的事件。 可以为代码提交、PR 创建和更新等设置和管理订阅,并在其频道中获取这些事件的通知。

先决条件

请参阅 Slack 文档,使用传入 Webhook 发送消息,以了解使用 WebHook 将信息推送到 Slack 通道的过程。

在 Slack 中创建自定义应用

  1. 创建新的 Slack 应用创建 Slack 应用

  2. 激活传入的 Web 挂钩,并将新的 WebHook 添加到所需的工作区 传入 WebHook 的屏幕截图。

    切换 Web 挂钩的屏幕截图。

  3. 选择必须为其创建 WebHook 的通道。

    创建 Web 挂钩的屏幕截图。

  4. 复制 Web 挂钩 URL 并转到 Azure DevOps。

    复制 Web 挂钩的屏幕截图。

在组织中创建服务挂钩订阅

  1. 转到项目 “服务挂钩 ”页。

    https://{orgName}/{project_name}/_settings/serviceHooks

    “项目管理”页的屏幕截图。

    选择“创建订阅”。

  2. 选择要在 Slack 通道中显示的事件类型。

    可以按特定方式筛选每个触发器。 例如,在发生拉取请求的存储库上筛选拉取请求创建的触发器、应用于的目标分支以及需要或受邀评审请求的团队成员。

  3. 粘贴你创建的 Slack 集成中的 Web 挂钩 URL,然后选择“ 完成”。

    “操作”对话框的屏幕截图,其中包含 Web 挂钩 URL。

    当事件发生在你的项目中时,团队的 Slack 频道中会显示一条通知。

    显示 Slack 通道中的通知的屏幕截图。

常见问题

问:配置触发器时,为什么没有拉取请求事件作为选项?

答:拉取请求仅适用于使用 Git 的项目。 如果项目使用 TFVC,则拉取事件触发器不可用,并且代码事件称为“代码检查传入”,而不是“推送代码”。

问:如何获取多个事件以在 Slack 频道中显示?

答:为所需的每种类型的事件创建新订阅。 例如,如果要在 Slack 通道中看到生成失败和新工作项,请再创建两个订阅。