带 Slack 的 Azure Repos

Azure DevOps Services

如果使用 Slack,则可以使用 适用于 Slack 的 Azure Repos 应用 来轻松监视 Azure Repos 存储库。 可以设置和管理订阅,以在每当推送/签入代码以及创建、更新拉取请求 (PR) 或尝试合并时,在频道中接收通知。 此应用同时支持 Git 和 Team Foundation 版本控制 (TFVC) 事件。

通知图像

阅读此文,了解如何:

  • 将 Azure Repos 应用添加到 Slack 工作区
  • 将 Azure Repos 应用连接到存储库
  • 在 Slack 通道中管理存储库相关事件的订阅
  • 有效使用筛选器对订阅自定义
  • 在专用 Slack 通道中获取通知

先决条件

注意

  • 直接消息中当前不支持通知。
  • 目前,只能将用于 Slack 的 Azure Repos 应用链接到托管在 Azure DevOps Services 上的某个项目。

将 Azure Repos 应用添加到 Slack 工作区

  1. 导航到“Azure Repos Slack 应用”,将 Azure Repos 应用安装到 Slack 工作区。

  2. 添加后,会显示应用的欢迎消息,如下图所示。

    欢迎消息

  3. 使用 /azrepos Slack 句柄与应用交互。 本文的命令参考部分提供了命令的完整列表。

将 Azure Repos 应用连接到存储库

  1. 在 Slack 工作区中安装应用后,使用 /azrepos signin 命令将自己连接到 Azure Repos 并进行身份验证。

    登录提示图像

  2. 若要开始监视项目中的所有 Git 存储库,请在通道内使用以下斜杠命令:

    /azrepos subscribe [project url]
    

    项目 URL 可以指向项目中的任何页面(存储库的 URL 除外)。

    例如:

    /azrepos subscribe https://dev.azure.com/myorg/myproject/
    

    还可以使用以下命令监视特定存储库:

    /azrepos subscribe [repository url]
    

    存储库 URL 可以指向存储库中使用存储库名称的任何页面。

    例如,对于 Git 存储库,使用:

    /azrepos subscribe https://dev.azure.com/myorg/myproject/_git/myrepository
    

    对于 TFVC 存储库,使用:

    /azrepos subscribe https://dev.azure.com/myorg/myproject/_versionControl
    

    注意

    只能订阅公共存储库。

  3. Subscribe 命令可让你开始使用默认订阅。 对于 Git 存储库,会将通道订阅到“拉取请求已创建”事件(目标分支 = master),对于 TFVC 存储库,会将通道订阅到“代码已签入”事件。

    默认订阅创建消息

管理订阅

若要查看、添加和删除通道的订阅,可使用 subscriptions 命令:

/azrepos subscriptions    

此命令会列出通道的所有当前订阅,并可用于添加新订阅或删除现有订阅。 添加订阅时,可以使用各种筛选器自定义要接收的通知,如以下部分所述。

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

查看订阅

有效使用筛选器对订阅自定义

当用户使用 /azrepos subscribe 命令订阅某个存储库时,将创建默认订阅。 通常,用户需要自定义这些订阅。 例如,仅当 PR 有特定审阅者时,用户可能才希望收到通知。

以下步骤演示如何自定义订阅。

  1. 运行 /azrepos subscriptions 命令。
  2. 在订阅列表中,如果有不需要或必须修改的订阅(例如:在通道中产生干扰),请选择“删除”按钮。
  3. 选择“添加订阅”按钮。
  4. 选择所需的存储库和所需的事件。
  5. 选择合适的筛选器以自定义订阅。

示例:仅当某个 PR 的审阅者列表中有我的团队时获取通知

审阅者中有我的团队

示例:当有合并操作因策略冲突而失败时通知我

由于策略冲突,合并操作失败

注意

  • 所有筛选器通常都是下拉列表。 但如果下拉列表中的项超过 100 个,则需要用户手动输入值。
  • 对于 TFVC 的“代码已签入”事件,筛选器“路径下”的格式必须是 $/myproject/path

拉取请求 URL 预览

当用户粘贴 PR 的 URL 时,会显示一个预览,如下图所示。 这有助于使 PR 相关对话符合上下文以及准确。

URL 展开

若要使用此功能,用户需要登录。 登录后,此功能将对工作区中的所有通道发挥作用。

从通道中删除订阅和存储库

  • 很多时候,用户希望通过删除存储库和订阅来清理其通道。 可使用以下命令实现此操作。

      /azrepos unsubscribe all [project url]
    

    例如:

      /azrepos unsubscribe all https://dev.azure.com/myorg/myproject
    

此命令会删除与项目中任何存储库相关的所有订阅,并从通道中删除存储库。 只有项目管理员可以运行此命令。

命令参考

下表列出了可在 Slack 通道中使用的所有 /azrepos commands

/ 命令 功能
/azrepos subscribe [存储库 url/项目 url] 订阅项目中的一个或所有存储库以接收通知
/azrepos subscriptions 添加或删除此通道的订阅
/azrepos signin 登录到 Azure Repos 组织
/azrepos signout 从 Azure Repos 组织注销
/azrepos feedback 报告一个问题或建议一项功能
/azrepos unsubscribe all [项目 url] 删除通道中的所有存储库(属于某个项目)及其关联订阅

专用通道中的通知

Azure Repos 应用还可以帮助你监视专用通道中的存储库事件。 这需要使用 /invite @azrepos 邀请机器人加入专用通道。 之后,可以用设置和管理公共通道的方式设置和管理通知。

疑难解答

如果在使用适用于 Slack 的 Azure Repos 应用时遇到以下错误,请执行本部分中的步骤。

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

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

启用“为组织通过 OAuth 访问第三方应用程序”设置

配置失败。 请确保组织“{组织名称}”存在,并且你有足够的权限。

使用浏览器导航到 https://aka.ms/VsSignout,注销 Azure DevOps。

打开“专用”或“化名”浏览器窗口并导航到 https://aex.dev.azure.com/me,然后登录。 在左侧配置文件图标下的下拉列表中,选择要订阅的存储库所在的组织位于的目录。

选择项目所在的组织位于的目录

在同一浏览器中,启动一个新选项卡,导航到 ,并登录到工作区(使用 Web 客户端)https://slack.com。 运行 /azrepos signout 命令,然后运行 /azrepos signin 命令。

选择 Sign in 按钮,随即会转到以下示例中所示的同意页面。 确保电子邮件旁显示的目录与上一步中选择的目录相同。 接受并完成登录过程。

同意请求的应用权限

如果上述步骤无法解决你遇到的身份验证问题,请通过开发者社区联系我们。