【问题标题】:TFS configuration policy creation using API in C#在 C# 中使用 API 创建 TFS 配置策略
【发布时间】: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”的类型不存在

  • 【问题讨论】:

      标签: c# api tfs tfs-sdk


      【解决方案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 自己修复总是更好;正如您所了解的那样!:) 请随时在此处分享您的解决方案,然后将您的回复标记为答案,这也将有助于社区中的其他人。
      猜你喜欢
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2021-01-25
      • 2018-01-31
      相关资源
      最近更新 更多