在 C# 中使用 API 创建 TFS 配置策略
Posted
技术标签:
【中文标题】在 C# 中使用 API 创建 TFS 配置策略【英文标题】:TFS configuration policy creation using API in C# 【发布时间】:2020-02-14 07:03:49 【问题描述】:我正在尝试使用 Microsoft.TeamFoundation.Policy.WebApi 库创建新的分支策略。 我的代码是:
变量信息:
json - 包含策略配置中的设置 connection - 是到我们的 TFS 服务器的 VSSConnection TFSProject - 是 TFS 中的项目名称 我得到的错误在我的搜索中没有显示任何内容,我将不胜感激有关如何在 TFS 中创建新策略的一些示例代码:
var json = "\"statusName\": \"" + StatusNameForBlock + "\",\"statusGenre\": \"ci\",\"authorId\": null,\"invalidateOnSourceUpdate\": false,\"policyApplicability\": null,\"scope\": [\"refName\": \"refs/heads/master\",\"matchKind\": \"Exact\"]";
JObject jToken = new JObject(JObject.Parse(json));
var newPolicy = new PolicyConfiguration();
var policyType = new PolicyTypeRef();
policyType.Id = Guid.NewGuid();
newPolicy.Type = policyType;
newPolicy.Settings = jToken;
var gitPolicyHttpClient = connection.GetClient<PolicyHttpClient>();
var policyCreated = gitPolicyHttpClient.CreatePolicyConfigurationAsync(newPolicy, TFSProject).Result;
异常:VssServiceException:ID 为“98813712-70a4-4937-b139-9a3654c9795f”的类型不存在
【问题讨论】:
【参考方案1】:您可以使用 Rest API 创建新的分支策略。
POST https://instance/collection/project/_apis/policy/configurations/configurationId?api-version=5.0
使用这些 API 为您的项目定义政策。配置将类型(例如“必需的审阅者”)与特定设置相关联,例如“对于带有名为 *.dll 的文件的拉取请求,该文件针对 xxx Git 存储库中的主分支,请将源代码控制二进制文件团队添加为必需的审阅者” .
Policy Examples 供您参考。
更多详情,你也可以看看这个博客--Configuring standard policies for all repositories in Azure Repos
【讨论】:
这不是最佳做法。我解决了我的问题,将尽快发布答案。 @OriWiesel 自己修复总是更好;正如您所了解的那样!:) 请随时在此处分享您的解决方案,然后将您的回复标记为答案,这也将有助于社区中的其他人。以上是关于在 C# 中使用 API 创建 TFS 配置策略的主要内容,如果未能解决你的问题,请参考以下文章
通过 SQL Server 存储过程调用 Team Foundation Server(TFS) API
C# Net Core:在 API 中启用 Cors 后,仍处于 CORS 策略阻止状态
VssResourceNotFoundException:API 资源位置 <GUID> 未在 tfs url 上注册 - c#