-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
问题描述
我正在使用 alibabacloud-devops-mcp-server 通过 AI Agent 管理合并请求。在尝试合并或评审之前,我需要检查特定的合并请求(Merge Request / Change Request)是否存在代码冲突。
虽然 operations/codeup/types.ts 中的 ChangeRequestSchema 定义了 conflictCheckStatus 字段:
conflictCheckStatus: z.string().nullable().optional().describe("冲突检测状态:CHECKING - 检测中;HAS_CONFLICT - 有冲突;NO_CONFLICT - 无冲突;FAILED - 检测失败"),但在实际使用中,当调用 get_change_request 获取一个明确存在冲突(已通过 Codeup Web 界面验证)的 MR 时,响应中经常缺少该字段或未定义。
当前行为
调用 get_change_request 工具:
{
"name": "get_change_request",
"arguments": {
"organizationId": "...",
"repositoryId": "...",
"localId": "..."
}
}返回的 JSON 对象中缺少 conflictCheckStatus 字段,即使该 MR 实际上处于冲突状态。
期望行为
get_change_request 工具应始终返回 conflictCheckStatus(例如 HAS_CONFLICT、NO_CONFLICT、CHECKING),以便调用方(如 AI Agents)能够根据请求的可合并性做出决策。
复现步骤
- 在阿里云 Codeup 中创建一个存在代码冲突的合并请求。
- 使用
get_change_request工具获取该 MR 的详情。 - 观察返回的 JSON 数据中不包含
conflictCheckStatus或任何指示冲突的信息。
环境信息
- MCP Server Version: 0.3.11
- API Endpoint:
openapi-rdc.aliyuncs.com(OpenAPI v1)
可能的解决方案
请调查底层 Open API (v1) 为何未返回此字段,或者:
- 如果状态未知,是否可以触发冲突检查?
- 考虑在工具内暴露替代字段或封装 API 调用(例如
compare),以确定冲突状态。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels