带 Slack 的 Azure Repos

Azure DevOps Services

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

先决条件

  • 若要在 Slack 频道中创建与存储库相关的事件的订阅,请成为 项目管理员 组的成员或团队管理员。 若要添加,请参阅 更改项目级权限添加团队管理员
  • 若要接收通知,必须为组织启用“通过 OAuth 访问第三方应用程序”设置。 有关详细信息,请参阅 更改组织的应用程序访问策略。

注意

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

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

  1. 转到 Azure Repos Slack 应用,然后选择添加到 Slack

    Slack 应用目录、Azure Repos 和按钮的屏幕截图,“添加到 Slack”。

    添加后,会收到类似于以下欢迎消息的内容。

    Slack 中欢迎消息的屏幕截图。

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

将 Azure Repos 应用连接到存储库

  1. 使用 /azrepos signin 命令自行连接到 Azure Repos 并进行身份验证。

    Slack 登录提示的屏幕截图。

  2. 选择“登录”

  3. 接受 Azure Repos Slack 集成。

    在生成的登录屏幕中 生成的登录屏幕中的“接受”按钮的屏幕截图。

    显示一个用来进行身份验证的验证码,以便在您的聊天应用中使用。

  4. 复制身份验证代码。

    Azure Repos 提供的验证码的屏幕截图。

  5. 选择 输入代码粘贴代码,然后选择 提交

    粘贴验证码,然后选择“提交”按钮时最终身份验证屏幕的屏幕截图。

    在聊天中显示登录确认。

    聊天中的登录确认的屏幕截图。

若要开始监视项目中的所有 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

注意

只能订阅公共存储库。

订阅命令可让你开始使用默认订阅。 对于 Git 存储库,通道订阅已创建拉取请求事件(目标分支 = 主);对于 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邀请机器人加入专用频道。 然后,可以采用与公共频道相同的方式管理通知。

疑难解答

如果使用 Azure Repos App for Slack时遇到以下错误,请按照本节中的过程操作。

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

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

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

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

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

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

选择包含包含项目 组织的目录

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

选择 Sign in 按钮,你将被重定向到同意页面,如以下示例中的同意页面。 确保电子邮件旁显示的目录与上一步中选择的目录相同。 接受并完成登录过程。

屏幕截图显示同意请求的应用权限。

如果这些步骤无法解决身份验证问题,请在 开发人员社区联系我们。