能否通过VSTS REST API修改「新变更时重置代码评审者投票」策略选项?
解决Azure DevOps分支策略「新变更时重置评审投票」的API修改问题
嘿,我刚好碰到过类似的需求,给你说下怎么通过REST API搞定这个设置:
首先你找错地方啦——policy/types接口只是用来查看策略的元数据定义,具体的分支策略实例配置(包括你要改的重置投票选项)是在policy/configurations接口里操作的。
具体操作步骤:
获取所有代码评审策略实例
发送GET请求到:GET https://<Account Domain>.visualstudio.com/<Project Name>/_apis/policy/configurations?api-version=7.1-preview.1在返回结果里筛选出
type.id为fa4e907d-c16b-4a4c-9dfa-4906e5d171dd的条目(这是Azure DevOps里代码评审策略的固定ID),这些就是你要修改的目标策略。修改目标策略的重置投票设置
对每个筛选出来的策略实例,构造PUT请求,在settings字段里添加/修改resetVotesOnPush属性为true。请求体示例如下:{ "isEnabled": true, "isBlocking": true, "type": { "id": "fa4e907d-c16b-4a4c-9dfa-4906e5d171dd" }, "settings": { "requiredReviewerIds": ["<Reviewer ID>"], "filenamePatterns": [], "resetVotesOnPush": true, // 就是这个属性控制重置投票 "requireVoteOnLastIteration": false, "resetCommentsOnPush": false, "blockingVoteCount": 1, "scope": [ { "refName": "refs/heads/your-branch", "matchKind": "Exact", "repositoryId": "<Repo ID>" } ] } }提交修改
发送PUT请求到对应策略的配置接口:PUT https://<Account Domain>.visualstudio.com/<Project Name>/_apis/policy/configurations/{policyId}?api-version=7.1-preview.1把上面构造好的JSON作为请求体发送即可。
注意事项:
- 确保使用的API版本是
7.1-preview.1或更高,旧版本可能不支持resetVotesOnPush这个属性。 - 如果策略原本没有
resetVotesOnPush字段,直接添加进去并设为true就行,Azure DevOps会识别这个设置。
内容的提问来源于stack exchange,提问作者Mike Davis
相关产品推荐
相关产品推荐

