带 Slack 的 Azure Repos

Azure DevOps Services

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

先决条件

注意

  • 目前,只能将用于 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

注意

只能订阅公共存储库。

Subscribe 命令可让你开始使用默认订阅。 对于 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 邀请机器人加入专用通道。 然后,你可以像管理公共通道一样管理通知。

疑难解答

如果在使用适用于 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 按钮,随即会重定向到以下示例中所示的同意页面。 确保电子邮件旁显示的目录与上一步中选择的目录相同。 接受并完成登录过程。

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

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