【发布时间】:2019-07-21 01:25:09
【问题描述】:
我们正在尝试通过使用 Azure Devops Rest API 复制另一个构建定义信息来创建构建定义,但出现以下错误:
HttpError BadRequest - 值不能为空。参数名称: 定义.Repository.Mappings.Mapping.ServerPath。
这是我们正在遵循的步骤
- 使用 API 获取构建信息 - 此步骤运行良好
- 修改构建定义的名称
- 通过传递上述构建定义请求正文创建新的构建定义
示例代码
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传递了什么值? -
嗨 Stuart,在 Repository 中,我们不需要根据链接 docs.microsoft.com/en-us/rest/api/azure/devops/build/… 为 Mappings 部分提供任何内容
-
另外,如果我们在 definition.Repository.Mappings.Mapping.ServerPath 中添加“$/XXX.ExtSource/MVC2017”,那么我们也会遇到同样的错误
标签: c# azure-devops azure-devops-rest-api