繁体   English   中英

使用Azure Devops API创建生成定义

[英]Create Build Definition using Azure Devops API

我们正在尝试通过使用Azure Devops Rest API复制另一个构建定义信息来创建构建定义,但是出现以下错误:

HttpError BadRequest-值不能为null。 参数名称:definition.Repository.Mappings.Mapping.ServerPath。

这是我们要遵循的步骤

  1. 使用API​​获取构建信息-此步骤工作正常
  2. 修改构建定义的名称
  3. 通过传递上述构建定义请求主体来创建新的构建定义

样例代码

var buildDefinitionGet = client.GetBuildDefinitionsAsync("XXX.DevOps", "15");

var newBuildDefinition = buildDefinitionGet;
newBuildDefinition.name = "MVC2017-1";

var buildDefinition = await client               
   .CreateBuildDefinitionsAsync("XXX.DevOps", newBuildDefinition)
   .ConfigureAwait(false);

这是请求主体结构:

public class BuildDefinitionRequestBody
{
    public Process process { get; set; }
    public Repository repository { get; set; }
    public ProcessParameters processParameters { get; set; }
    public List<object> drafts { get; set; }
    public Queue queue { get; set; }
    public string name { get; set; }
    public string type { get; set; }
    public string queueStatus { get; set; }
}

我们正在使用TFVC作为源代码控制。

我们错过了什么吗?

在这些情况下,有两种类型错误,

definition.Repository.Mappings.Mapping.ServerPath ”和“ definition.Repository.Mappings.Mapping.LocalPath”。

路径中的以下情况将导致上述错误。

definition.Repository.Mappings.Mapping.LocalPath


  1. 不允许使用unc路径
  2. 本地映射不允许是绝对路径或导航到s目录之外
  3. 两个映射不应具有相同的本地路径
  4. 本地路径号为0或映射号为0

definition.Repository.Mappings.Mapping.ServerPath


  1. 不允许使用无效字符
  2. 服务器路径或类型不允许使用空字段
  3. 两个映射不应具有相同的服务器路径

由于屏幕快照并未显示完整的本地路径和服务器路径,因此请根据您自己的上述规则检查路径。 我建议您从页面顶部的相应项目的“代码”->“文件”中复制“服务器路径”值,以确保服务器路径正确。 对于本地路径,建议您一一删除,以确保引起此问题的是哪一个。

用于克隆构建的Powershell等效代码。

 $uri = 'https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}' $result = Invoke-RestMethod -Method Get -Uri $uri -UseDefaultCredentials $result.path = '\\NewFolder\\Location' $result.name = "Testing" $body = $result | ConvertTo-Json -Depth 7 Invoke-RestMethod -Method POST -uri 'https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=4.0' -UseDefaultCredentials -Body $body -ContentType 'application/json' 

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM