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

如何使用Azure DevOps REST API禁用分支策略及解决PUT请求报错

你调用PUT接口失败的核心原因是Azure DevOps 策略配置更新接口不支持局部字段更新,你仅提交isEnabled字段的做法不符合接口要求,具体疏漏有2点:

  • 第一,该PUT接口要求请求体必须携带完整的策略配置对象,不能只传递需要修改的字段,必填字段包括type.id、完整的settings节点、isBlocking、revision等,缺失必填字段会触发JSON解析/校验异常。
  • 第二,你提交的JSON结构不满足接口的Schema要求,服务端无法正常解析,所以抛出了JsonReaderException相关的内部错误。

正确操作步骤

  1. 先从GET接口返回的结果中复制完整的单条策略配置(即value数组内的整个对象)
  2. 修改其中的isEnabled字段为false,保持revision字段的值和当前获取到的一致(你当前的revision值为1)
  3. 将修改后的完整对象作为PUT请求的请求体发送

正确的CURL命令示例如下,你需要把其中的占位符替换为实际取值即可:

curl --url "https://dev.azure.com/{ORG}/{PROJ}/_apis/policy/configurations/2?api-version=6.0" \
--user "username:password" \
--request PUT \
--header "Content-Type: application/json" \
--data '{
    "createdBy": {
        "displayName": "Akshay B",
        "url": "XXXX",
        "_links": {
            "avatar": {
                "href": "XXXX"
            }
        },
        "id": "XXXX-XXXX-XXXX-XXXX-e0fdec2c1636",
        "uniqueName": "XXXX@XXXX.com",
        "imageUrl": "XXXX",
        "descriptor": "XXXX"
    },
    "createdDate": "2021-08-30T12:24:43.0238821Z",
    "isEnabled": false,
    "isBlocking": true,
    "isDeleted": false,
    "settings": {
        "minimumApproverCount": 2,
        "creatorVoteCounts": false,
        "allowDownvotes": false,
        "resetOnSourcePush": false,
        "requireVoteOnLastIteration": false,
        "resetRejectionsOnSourcePush": false,
        "blockLastPusherVote": false,
        "scope": [
            {
                "refName": "refs/heads/master",
                "matchKind": "Exact",
                "repositoryId": "XXXX-XXXX-XXXX-XXXX-cd2a5c3167b3"
            }
        ]
    },
    "isEnterpriseManaged": false,
    "_links": {
        "self": {
            "href": "XXXX"
        },
        "policyType": {
            "href": "XXXX"
        }
    },
    "revision": 1,
    "id": 2,
    "url": "XXXX",
    "type": {
        "id": "XXXX-XXXX-XXXX-XXXX-4906e5d171dd",
        "url": "XXXX",
        "displayName": "Minimum number of reviewers"
    }
}'

如果需要重新启用策略,仅需把上述请求体中的isEnabled改回true,再调用一次PUT接口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:42:01