如何在 Azure Devops Rest API 中创建或更新工作项时设置工作项状态?
How to set a work item state while creating or updating work item in Azure Devops Rest API?
我一直致力于在 Azure Devops 中创建一个 API 以编程方式 creates/updates 工作项。我已经能够创建一个工作项并填充几乎所有字段。我在设置状态时遇到问题。
当我创建一个 POST 到 Azure Devops rest api 的请求时,它会抛出一个 400 Bad Request 错误。
我不知道我是否遗漏了什么,或者我尝试设置值的方式是否有问题。
{
"op" : "add",
"path": "/fields/System.State",
"value"="Active",
}
在此处检查示例:Update a field
您必须在请求正文中使用 "value":"Active"
。
[
{
"op" : "add",
"path": "/fields/System.State",
"value": "Active"
}
]
我已经找到了解决这个问题的方法,所以我在这里回答。
每当我尝试在同一个调用中创建项目和设置状态时,我都会收到 400 Bad Request 错误。我调试了代码并捕获了异常。我发现,某些字段有一些验证规则。国家就是其中之一。
System.State 字段的规则是,无论何时创建工作项,它都采用其配置的默认值。 (在我的情况下它是“建议的”,在你的情况下它可能是“新的”)。如果您尝试在创建工作项时更改值,它会抛出 400 Bad Request。
如果必须创建具有特定状态的工作项,我应该怎么做?
截至目前,我找到的解决方案是进行两次调用。一个用于创建工作项,另一个用于将工作项的状态更改为所需状态。
CreateWorkItem()
{
var result = await _client.Post(url, jsonData);
var result2 = await _client.Put(result.id, jsonData); // or maybe just the state
return Ok(result2);
}
我一直致力于在 Azure Devops 中创建一个 API 以编程方式 creates/updates 工作项。我已经能够创建一个工作项并填充几乎所有字段。我在设置状态时遇到问题。
当我创建一个 POST 到 Azure Devops rest api 的请求时,它会抛出一个 400 Bad Request 错误。
我不知道我是否遗漏了什么,或者我尝试设置值的方式是否有问题。
{
"op" : "add",
"path": "/fields/System.State",
"value"="Active",
}
在此处检查示例:Update a field
您必须在请求正文中使用 "value":"Active"
。
[
{
"op" : "add",
"path": "/fields/System.State",
"value": "Active"
}
]
我已经找到了解决这个问题的方法,所以我在这里回答。
每当我尝试在同一个调用中创建项目和设置状态时,我都会收到 400 Bad Request 错误。我调试了代码并捕获了异常。我发现,某些字段有一些验证规则。国家就是其中之一。
System.State 字段的规则是,无论何时创建工作项,它都采用其配置的默认值。 (在我的情况下它是“建议的”,在你的情况下它可能是“新的”)。如果您尝试在创建工作项时更改值,它会抛出 400 Bad Request。
如果必须创建具有特定状态的工作项,我应该怎么做?
截至目前,我找到的解决方案是进行两次调用。一个用于创建工作项,另一个用于将工作项的状态更改为所需状态。
CreateWorkItem()
{
var result = await _client.Post(url, jsonData);
var result2 = await _client.Put(result.id, jsonData); // or maybe just the state
return Ok(result2);
}