《Cursor文档》-Azure DevOps

Azure DevOps 集成可将 Azure DevOps Services 仓库连接到云端代理Bugbot

Azure DevOps 集成目前为公开 beta 版。它支持 dev.azure.com 上的 Azure DevOps Services,不支持 Azure DevOps Server。

支持的功能

云端代理 可以克隆您的代码、在分支上工作并创建 PR。Bugbot 会评审 PR,并将其发现作为评论发布。

以下功能暂不支持 Azure DevOps:

这些功能目前支持 GitHub。Azure DevOps 支持已列入路线图。

设置

需要有权访问要与 Cursor 配合使用的 Azure DevOps 组织和仓库。

  1. 前往仪表盘中的集成
  2. 点击 Azure DevOps 旁的 连接
  3. 使用用于 Azure DevOps 的 Microsoft 账户登录
  4. 查看 Microsoft Entra OAuth 同意页面并批准访问
  5. 返回 Cursor,从 Azure DevOps 组织中选择仓库
  6. 为希望供 Cursor 使用的仓库配置云端代理

若要断开 Azure DevOps 账户,请返回集成仪表盘并点击 断开账户连接

设置 Bugbot

Azure DevOps 上的 Bugbot 目前仅限部分用户使用。设置时需要由 Microsoft Entra ID 管理员授予租户管理员同意,我们会引导您完成此步骤。请联系我们以快速入门。

Bugbot 会使用 Cursor 在您的租户中预配的 Microsoft Entra 服务主体评审 Azure DevOps PR。该服务主体会安装 Bugbot 监听的服务钩子、读取 PR diff,并发布评审评论和构建状态。每个 Azure DevOps 组织只需按以下顺序设置一次:

  1. 项目集合管理员仪表盘中的集成连接 Azure DevOps,并在自动化中的 Bugbot中为代码仓库启用 Bugbot。此操作会发现您组织的 Entra 租户,并自动预配 Cursor 服务主体。预配需要一次性的Microsoft Entra 管理员同意
  2. 项目管理员将 Cursor 服务主体添加到每个您希望进行评审的项目项目管理员组。Bugbot 需要项目管理权限来管理其服务钩子。
  3. Azure DevOps 应用权限更改会延迟几分钟。权限更改后立即失败的开关,几分钟后无需更改即可成功。

如果缺少某个步骤,代码仓库开关会失败,并显示指出缺失步骤的错误。修复后,再次启用该代码仓库。

Azure DevOps 上的 Bugbot 适用于团队代码仓库,不支持个人范围的代码仓库。

授予 Microsoft Entra 管理员同意

在 Cursor 的服务主体可在你的目录中创建之前,Microsoft Entra ID 管理员必须一次性授予租户范围的管理员同意。授予同意需要全局管理员、应用管理员或云应用管理员角色。该同意适用于整个租户,因此仅有代码仓库管理员权限无法完成此操作。

启用时出现的错误会提示缺少同意。你也可以自行构建同意链接:

https://login.microsoftonline.com/{your-tenant-id}/v2.0/adminconsent?client_id=29df4809-337a-4255-bd57-d4a1476b0e65&redirect_uri=https://cursor.com/azure-devops-connected&scope=499b84ac-1321-427f-aa17-267ca6975798/.default%20offline_access%20openid%20profile

{your-tenant-id} 替换为你在 Microsoft Entra 管理中心中的租户 ID。client_id 是 Cursor 的应用 ID。scope 包含 Azure DevOps API (499b84ac-1321-427f-aa17-267ca6975798 是 Microsoft 为其分配的标识符) 以及标准登录范围。Cursor 不会请求任何 Microsoft Graph 数据。服务主体保留在你的租户中,你可随时在 Entra 中将其撤销。

管理员同意后,Microsoft 会将其重定向到 cursor.com/azure-devops-connected,页面会确认授权。授权保留在你的租户中,因此下次启用代码仓库时即可完成设置。

之前的同意仅涵盖 Cursor 当时请求的权限。如果 Cursor 在你的租户同意后新增了某项权限,设置会在中途失败,重新连接也无法解决。请再次打开同意链接以刷新授权。

使用个人 Microsoft 账户的 Azure DevOps 组织无法托管服务主体。请先将该组织连接到 Microsoft Entra ID。

授予服务主体访问组织的权限

完成授权后,Cursor 会将服务主体添加到你的 Azure DevOps 组织,并为其申请 Basic 访问级别。这两项操作都会通过连接 Azure DevOps 的管理员账户自动完成。随后,服务主体会显示在 组织设置用户 中。

以下两种情况可能会导致操作失败:

  • 已连接的账户无权向组织添加用户。 请使用组织管理员账户重新连接 Azure DevOps。
  • 没有可用的 Basic 访问级别。 释放一个 Basic 席位,或在 组织设置用户 中将一个 Basic 席位分配给服务主体。

将服务主体添加到项目中

Azure DevOps 通过服务钩子将 PR 通知给 Bugbot,且只有项目管理员才能管理这些钩子。请在每个需要评审的项目中,依次进入 项目设置权限,将 Cursor 服务主体添加到 项目管理员 群组。仅有代码仓库读取权限并不足够。

权限更改可能需要几分钟才能生效,因此,授权后立即失败的开关操作,几分钟后在不作任何更改的情况下可能会成功。

在仓库中启用 Bugbot

  1. 打开 自动化中的 Bugbot
  2. 在安装列表中找到你的 Azure DevOps 仓库
  3. 为每个需要评审的仓库启用 Bugbot

启用仓库时,Bugbot 会安装服务钩子;关闭时则会移除这些钩子。对某个仓库关闭 Bugbot,或断开 Azure DevOps 连接,都会立即停止该仓库的评审。

如何触发评审

Bugbot 会在每个 PR 创建和更新时进行评审。也可以通过评论 cursor reviewbugbot run 按需请求评审。

通过评论触发评审有一项 Azure DevOps 限制:只有 Azure DevOps 登录地址与拥有该代码仓库的团队中某个 Cursor 账户相匹配的用户,才能使用此方式。其他人的评论不会启动评审。自动评审则不受此限制,涵盖所有作者。

筛选要评审哪些作者

默认情况下,Bugbot 会评审所有作者。若要缩小范围,请在代码仓库的 Bugbot 设置中关闭 Run for All Authors,然后选择 Only Review PRs by…Skip PRs by…

该列表填写的是 Azure DevOps 登录地址,而非用户名,字段标签也是如此。登录地址类似于 taylor@contoso.com,可由组织管理员在 组织设置Users 中查看。用户名无法匹配任何人,因此 Bugbot 不会评审该作者的 PR。

与其他提供商的差异

代码仓库设置和代码仓库规则在 Azure DevOps 中可用。以下功能不可用:

  • 为新代码仓库自动启用。 请自行为每个新代码仓库启用 Bugbot。
  • 自动学习规则。 您手动编写的代码仓库规则仍然适用。
  • 个人 Bugbot 设置。 代码仓库设置会改为应用于所有人。
  • Autofix。 Bugbot 会报告发现的问题,但不会创建修复提交。

构建状态和分支策略

Bugbot 会在每个已评审的 PR 上发布构建状态,上下文为 cursor-bugbot/review。各结论的含义请参阅 CI 检查状态

如果将该上下文设为必需状态的分支策略,请将策略的重置条件设为每当有新更改时重置状态。否则,在新提交合入后,较早推送的状态仍会满足该策略。

从旧版 Bugbot 设置迁移

在 2026 年 8 月之前为 Azure DevOps 启用 Bugbot 的组织采用的是旧版的按代码仓库设置。仍在使用该设置的代码仓库启用时会显示“此 Azure DevOps 代码仓库仍在使用旧版 Bugbot 设置。”

迁移会自动完成。以组织管理员身份连接 Azure DevOps,然后在 自动化中的 Bugbot 中再次启用该代码仓库。Cursor 会移除旧版服务钩子,并一步完成新设置。

如果 Cursor 报告无法移除旧版设置,请手动移除:

  1. 在 Azure DevOps 中,打开 项目设置服务钩子
  2. 删除发送到 https://api2.cursor.sh/azure_devops_webhook 的 Cursor Web Hooks 订阅
  3. 自动化中的 Bugbot 中再次启用该代码仓库

迁移后,新设置的前提条件将开始适用。你的租户需要一次性授予 Microsoft Entra 管理员同意,且服务主体需要你所在组织的 Basic 访问级别以及加入每个项目的 Project Administrators 群组

代码仓库 URL

Cursor 支持以下格式的 Azure DevOps Services 仓库 URL:

https://dev.azure.com/{organization}/{project}/_git/{repository}

Azure DevOps 采用组织、项目和仓库的层级结构。Cursor 会在 Azure DevOps 组织下以 {project}/{repository} 的格式显示仓库。

如果你的组织仍在使用 *.visualstudio.com URL,请先在 Azure DevOps 中打开仓库并复制其 dev.azure.com URL,然后再将其添加到 Cursor。

权限

Cursor 通过 Microsoft Entra OAuth 连接 Azure DevOps。连接后,Cursor 可以:

访问权限 用途
组织和项目 列出您有权访问的 Azure DevOps 组织、项目和仓库
代码仓库 克隆仓库并创建工作分支
PR 打开、更新和合并由云端代理创建的 PR

Bugbot 会添加第二个身份。Cursor 会在您的租户中预配 Microsoft Entra 服务主体,并将其用于所有 Bugbot 操作。因此,即使配置集成的人员更换角色或离职,评审仍会继续运行。

操作 Azure DevOps 身份
Bugbot 评审评论、行内评论和构建状态 Cursor 服务主体
Bugbot 服务钩子的安装和移除 Cursor 服务主体
云端代理执行的 Git 克隆、分支推送、提交和 PR 创建 已连接的 Azure DevOps 用户

疑难排查

看不到 Azure DevOps 代码仓库

  • 确认代码仓库托管在 dev.azure.com 的 Azure DevOps Services 上。
  • 确认所连接的 Microsoft 账户有权访问该组织、项目和代码仓库。
  • 如果 Microsoft 账户的访问权限发生变更,请在集成仪表盘中重新连接 Azure DevOps。

云端代理无法创建 PR

  • 确认所选的 Azure DevOps 代码仓库已连接到 Cursor。
  • 检查您的 Azure DevOps 账户是否有权在目标代码仓库中创建分支和 PR。
  • 如果目标分支的策略阻止创建或更新 PR,请检查分支策略。

代码仓库 URL 被拒绝

请使用 Azure DevOps 中的 dev.azure.com 代码仓库 URL。此集成不支持 Azure DevOps Server URL。

Bugbot 未评审我的 PR

  • 确认该代码仓库已在 自动化中的 Bugbot 中启用。
  • 确认该代码仓库属于某个 Cursor 团队。Azure DevOps 上的 Bugbot 不会评审个人范围的代码仓库。
  • 确认 Cursor 服务主体属于该项目 项目设置权限 下的 项目管理员 群组。
  • 如果您按作者筛选,请确认 PR 作者是按 Azure DevOps 登录地址而非用户名列出的。

在 PR 中评论未触发评审

只有当您的 Azure DevOps 登录地址与拥有该代码仓库的团队中 Cursor 账户的地址一致时,评论触发器才会生效。即使两个地址属于同一人,在这里仍视为两个人。

请核对 Azure DevOps 配置文件中的登录地址与 Cursor 账户中的电子邮件地址;如果该地址未关联 Cursor 账户,请让团队管理员邀请该地址。无论是否匹配,自动评审都会继续运行。

Bugbot 忽略我的个人设置

个人 Bugbot 设置暂不适用于 Azure DevOps 代码仓库,但代码仓库设置适用。请在 自动化中的 Bugbot 中按代码仓库设置所需行为。

新推送后,必需的 Bugbot 状态仍显示为绿色

打开 cursor-bugbot/review 状态的分支策略,并将 Reset conditions 设置为 Reset status whenever there are new changes。否则,Azure DevOps 会保留之前的状态,导致策略在 Bugbot 尚未评审的提交上仍会通过。

后续步骤

连接 Azure DevOps 集成后,请配置使用该集成的功能:

  • Bugbot - 自动化 PR 审查,可捕获缺陷和安全问题

  • 云端代理 - 在云端对您的仓库运行的 AI 智能体

  • 云端代理设置 - 已保存的环境、多仓库设置、机密信息和 Dockerfile
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜