You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps分支策略API调用后,允许合并类型勾选未生效

Azure DevOps REST API设置合并策略未生效问题解决

问题描述

调用Azure DevOps REST API创建/更新「Require a merge strategy」分支策略时,请求返回200 OK,但查看策略发现仅「Limit merge types」被开启,「Allowed merge types」下无任何选项被选中,payload中设置的useSquashMerge: true未被系统识别。

请求地址:

POST https://dev.azure.com/{{Org}}/{{ProjectName}}/_apis/policy/configurations?api-version=7.0

原请求payload:

{
    "isEnabled": true,
    "isBlocking": true,
    "type": {
        "id": "fa4e907d-c16b-4a4c-9dfa-4916e5d171ab"
    },
    "settings": {
        "useSquashMerge": true,
        "scope": [
            {
                "refName": "refs/heads/test_branch_for_policy",
                "matchKind": "exact",
                "repositoryId": "11223344-480x-4u1h-x16k-112233445566"
            }
        ]
    }
}

问题原因

该分支策略(类型ID fa4e907d-c16b-4a4c-9dfa-4916e5d171ab)的settings参数结构不支持useSquashMerge字段,需通过以下两个参数控制合并类型限制:

  • isLimitMergeTypesEnabled: 控制是否启用合并类型限制(对应界面上的「Limit merge types」开关)
  • allowedMergeTypes: 数组类型,指定允许的合并类型(对应界面上「Allowed merge types」的勾选框)

原payload使用了错误的参数名,导致系统无法识别要允许的合并类型。

解决方案

修改payload的settings部分,替换为正确的参数结构:

{
    "isEnabled": true,
    "isBlocking": true,
    "type": {
        "id": "fa4e907d-c16b-4a4c-9dfa-4916e5d171ab"
    },
    "settings": {
        "isLimitMergeTypesEnabled": true,
        "allowedMergeTypes": [
            "Squash"
        ],
        "scope": [
            {
                "refName": "refs/heads/test_branch_for_policy",
                "matchKind": "exact",
                "repositoryId": "11223344-480x-4u1h-x16k-112233445566"
            }
        ]
    }
}

说明:

  • allowedMergeTypes支持的取值包括:"NoFastForward"、"Rebase"、"RebaseMerge"、"Squash",可根据需求添加多个类型
  • 必须将isLimitMergeTypesEnabled设为true,否则allowedMergeTypes的设置不会生效

内容的提问来源于stack exchange,提问作者Avneet Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:30:55