Skip to content

[Feature Request] 希望 get_change_request 工具能稳定返回冲突检测状态 #41

@1925197339

Description

@1925197339

问题描述

我正在使用 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_CONFLICTNO_CONFLICTCHECKING),以便调用方(如 AI Agents)能够根据请求的可合并性做出决策。

复现步骤

  1. 在阿里云 Codeup 中创建一个存在代码冲突的合并请求。
  2. 使用 get_change_request 工具获取该 MR 的详情。
  3. 观察返回的 JSON 数据中不包含 conflictCheckStatus 或任何指示冲突的信息。

环境信息

  • MCP Server Version: 0.3.11
  • API Endpoint: openapi-rdc.aliyuncs.com (OpenAPI v1)

可能的解决方案

请调查底层 Open API (v1) 为何未返回此字段,或者:

  1. 如果状态未知,是否可以触发冲突检查?
  2. 考虑在工具内暴露替代字段或封装 API 调用(例如 compare),以确定冲突状态。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions