将 Azure Repos 与 Microsoft Teams 配合使用

Azure DevOps Services

如果使用 Microsoft Teams 和 Azure Repos,则可以使用适用于 Teams 的 Azure Repos 应用 来监视存储库。 该应用支持监视 Git 和 Team Foundation 版本控制 (TFVC) 存储库,但它不支持与 GitHub 存储库集成。

在本文中,了解如何执行以下任务:

  • 在 Microsoft Teams 中将 Azure Repos 应用添加到团队
  • 将 Azure Repos 应用连接到存储库
  • 管理通道中存储库相关事件的订阅
  • 使用 compose 扩展搜索和共享 PR 信息
  • 预览 PR URL
  • 从通道中删除订阅和存储库

先决条件

  • 管理订阅,使得每当代码被推送或签入,或者创建、更新或合并拉取请求 (PR) 时,你都会在通道中收到通知。 若要为存储库相关事件创建订阅,你须是项目管理员组的成员或团队管理员。 若要加入,请参阅更改项目级权限添加团队管理员
  • 若要接收通知,请为 Azure DevOps 组织启用“通过 OAuth 访问第三方应用程序”设置。 请参阅更改组织的应用程序访问策略

注意

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

在 Microsoft Teams 中将 Azure Repos 应用添加到团队

  1. 转到 Microsoft Teams 中的 Azure Repos 应用(Microsoft Teams > Azure Repos)。

  2. 选择“添加”,或如果已下载应用,请选择“打开”旁边的下拉菜单,然后选择“添加到团队”。

  3. 输入团队或通道名称,然后选择“设置机器人”。

    Teams 中 Azure Repos 的欢迎消息的屏幕截图。

将 Azure Repos 应用连接到存储库

  1. 在团队中安装应用后,在“回复”字段中输入以下文本:@azure repos signin

    如果 Microsoft Teams 和 Azure Boards 位于不同的租户中,请选择“使用不同的电子邮件登录”。

    显示 Teams Azure Repos 登录条目的屏幕截图。

    显示登录完整回复的屏幕截图。

  2. 若要监视项目中的所有 Git 存储库,请在通道中输入 @azure repos subscribe [project url]。 请务必添加项目 URL。 项目 URL 可以指向项目中的任何页面(存储库的 URL 除外)。

    还可以使用 @azure repos subscribe [repo url] 监视特定存储库。

    存储库 URL 可以指向存储库中具有存储库名称的任何页面,例如 @azure repos subscribe https://dev.azure.com/myorg/myproject/_git/myrepo@azure repos subscribe https://dev.azure.com/myorg/myproject/_versionControl(对于 TFVC 存储库)。

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

    显示默认订阅创建消息的屏幕截图。

管理订阅

若要查看、添加和删除通道的订阅,请输入以下文本:@azure repos subscriptions

你将看到通道的所有当前订阅的列表,并且可以添加新订阅或删除现有订阅。 使用各种筛选器自定义通知,如下一部分所述。

注意

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

查看订阅

使用筛选器仅获取所需的通知

使用 @azure repos subscribe 订阅存储库时,将创建未应用筛选器的默认订阅。 通常,用户需要自定义这些订阅,以便仅在满足某些条件时才收到通知。 以下屏幕截图显示了仅当我们的团队位于 PR 的审阅者列表中时设置通知的示例。

  1. 在通道中输入以下文本:@azure repos subscriptions

  2. 在订阅列表中,如果有不需要或必须修改的订阅,请选择“删除”将其删除。

  3. 选择“添加订阅”按钮。

  4. 选择事件类型,然后选择“下一步”。

    显示事件类型选择的屏幕截图。

  5. 选择一个存储库,然后选择“下一步”。

    显示存储库选择的屏幕截图。

  6. 选择适当的筛选器以自定义订阅,然后选择“提交”。

    显示所选筛选器的屏幕截图。

注意

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

使用 compose 扩展搜索和共享拉取请求

为了帮助用户搜索和共享有关拉取请求的信息,适用于 Microsoft Teams 的 Azure Repos 应用支持 compose 扩展。 可以按 ID 或名称搜索拉取请求。 若要使扩展正常工作,请通过输入 @azure repos signin 或直接登录 compose 扩展来登录 Azure Repos 项目。

显示 compose 扩展的屏幕截图。

预览拉取请求 URL

粘贴 PR 的 URL 时,将显示如下图所示的预览,这有助于保持 PR 相关对话的上下文相关性和准确性。 必须登录,然后才能预览团队中所有通道中的 URL 的 PR。

显示 URL 展开的屏幕截图。

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

若要删除与项目中任何存储库相关的所有订阅并从通道中删除存储库,请在 Teams 中输入以下文本:@azure repos unsubscribe all [project url]。 请确保输入项目 URL。 只有项目管理员可以执行此任务。

线程化通知

若要链接一组相关通知,同时减少通道中通知占用的空间,通知将线程化。 链接到特定拉取请求的所有通知都链接在一起。

线程化通知的紧凑视图显示线程化通知的紧凑视图的屏幕截图。

线程化通知的展开视图显示线程化通知的展开视图的屏幕截图。

命令参考

下表列出了可在 Teams 通道中使用的所有 azure repos 命令。

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

多租户支持

如果你为 Microsoft Teams 和 Azure DevOps 使用了其他电子邮件或租户,请根据你的用例执行以下步骤以进行登录。

使用案例 电子邮件 ID + Microsoft Teams 租户 电子邮件 ID + Azure DevOps 租户 步骤
1 email1@abc.com(租户 1) email1@abc.com(租户 1) 选择“登录”。
2 email1@abc.com(租户 1) email1@abc.com(租户 2) 登录 Azure DevOps。 在同一浏览器中,启动一个新选项卡并转到 https://teams.microsoft.com/。 运行登录命令并选择“登录”。
3 email1@abc.com(租户 1) email2@pqr.com(租户 2) 选择“使用不同的电子邮件地址登录”,然后在电子邮件 ID 选取器中使用 email2 登录到 Azure DevOps。
4 email1@abc.com(租户 1) email2@pqr.com(非默认租户 3) 此方案不受支持。

疑难解答

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

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

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

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

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

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

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

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

- 在同一浏览器中,启动一个新选项卡并转到 https://teams.microsoft.com/。 运行 @Azure Repos signout 命令,然后在安装了适用于 Microsoft Teams 的 Azure Repos 应用的通道中运行 @Azure Repos signin 命令。

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

同意请求的应用权限

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