带 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 通道中为存储库相关事件创建订阅,你必须是项目管理员组的成员或团队管理员。 若要加入,请参阅更改项目级权限或添加团队管理员。
- 若要接收通知,必须为组织启用“通过 OAuth 访问第三方应用程序”设置。 请参阅更改组织的应用程序访问策略。
注意
- 直接消息中当前不支持通知。
- 目前,只能将用于 Slack 的 Azure Repos 应用链接到托管在 Azure DevOps Services 上的某个项目。
将 Azure Repos 应用添加到 Slack 工作区
添加后,会显示应用的欢迎消息,如下图所示。
使用
/azrepos
Slack 句柄与应用交互。 本文的命令参考部分提供了命令的完整列表。
将 Azure Repos 应用连接到存储库
在 Slack 工作区中安装应用后,使用
/azrepos signin
命令将自己连接到 Azure Repos 并进行身份验证。若要开始监视项目中的所有 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 存储库,会将通道订阅到“拉取请求已创建”事件(目标分支 = master),对于 TFVC 存储库,会将通道订阅到“代码已签入”事件。
管理订阅
若要查看、添加和删除通道的订阅,可使用 subscriptions
命令:
/azrepos subscriptions
此命令会列出通道的所有当前订阅,并可用于添加新订阅或删除现有订阅。 添加订阅时,可以使用各种筛选器自定义要接收的通知,如以下部分所述。
[!注意]团队管理员无法删除或修改项目管理员创建的订阅。
有效使用筛选器对订阅自定义
当用户使用 /azrepos subscribe
命令订阅某个存储库时,将创建默认订阅。 通常,用户需要自定义这些订阅。 例如,仅当 PR 有特定审阅者时,用户可能才希望收到通知。
以下步骤演示如何自定义订阅。
- 运行
/azrepos subscriptions
命令。 - 在订阅列表中,如果有不需要或必须修改的订阅(例如:在通道中产生干扰),请选择“删除”按钮。
- 选择“添加订阅”按钮。
- 选择所需的存储库和所需的事件。
- 选择合适的筛选器以自定义订阅。
示例:仅当某个 PR 的审阅者列表中有我的团队时获取通知
示例:当有合并操作因策略冲突而失败时通知我
注意
- 所有筛选器通常都是下拉列表。 但如果下拉列表中的项超过 100 个,则需要用户手动输入值。
- 对于 TFVC 的“代码已签入”事件,筛选器“路径下”的格式必须是
$/myproject/path
。
拉取请求 URL 预览
当用户粘贴 PR 的 URL 时,会显示一个预览,如下图所示。 这有助于使 PR 相关对话符合上下文以及准确。
若要使用此功能,用户需要登录。 登录后,此功能将对工作区中的所有通道发挥作用。
从通道中删除订阅和存储库
很多时候,用户希望通过删除存储库和订阅来清理其通道。 可使用以下命令实现此操作。
/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 访问第三方应用程序”设置设为“开”。
配置失败。 请确保组织“{组织名称}”存在,并且你有足够的权限。
使用浏览器导航到 https://aka.ms/VsSignout
,注销 Azure DevOps。
打开“专用”或“化名”浏览器窗口并导航到 https://aex.dev.azure.com/me
,然后登录。 在左侧配置文件图标下的下拉列表中,选择要订阅的存储库所在的组织位于的目录。
在同一浏览器中,启动一个新选项卡,导航到 ,并登录到工作区(使用 Web 客户端)https://slack.com
。 运行 /azrepos signout
命令,然后运行 /azrepos signin
命令。
选择 Sign in
按钮,随即会转到以下示例中所示的同意页面。 确保电子邮件旁显示的目录与上一步中选择的目录相同。 接受并完成登录过程。
如果上述步骤无法解决你遇到的身份验证问题,请通过开发者社区联系我们。
相关文章
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈