如何使用 REST API 更新任务组
How to update a Task Group using the REST API
假设我正在尝试更新任务组描述。
- 我通过获取请求获取所有任务组
GET https://dev.azure.com/{organization}/{project}/_apis/distributedtask/taskgroups?api-version=6.0-preview.1
- 我按名称过滤它并获取 ID。例如。
aaabbbcc-abcd-ae12-917d-97f1935b1542
- 获得 ID 后,我使用
发出 PUT 请求
PUT https://dev.azure.com/{organization}/{project}/_apis/distributedtask/taskgroups/aaabbbcc-abcd-ae12-917d-97f1935b1542?api-version=6.0-preview.1
拥有 JSON 身材
{
"description": "this is the new description",
"id": "aaabbbcc-abcd-ae12-917d-97f1935b1542"
}
但是最后一步不行。我会收到以下错误:
{
"$id": "1",
"innerException": null,
"message": "Task group aaabbbcc-abcd-ae12-917d-97f1935b1542 not found.",
"typeName": "Microsoft.TeamFoundation.DistributedTask.WebApi.MetaTaskDefinitionNotFoundException, Microsoft.TeamFoundation.DistributedTask.WebApi",
"typeKey": "MetaTaskDefinitionNotFoundException",
"errorCode": 0,
"eventId": 3000
}
我做错了什么?
最好的方法是使用您在 GET
API 中获得的任务组并更改那里的描述,然后将其转换为 JSON 并发送所有PUT
API.
中的对象
例如 - 在 PowerShell 中:
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,"YOUR-PAT")))
$headers = @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$url = "https://dev.azure.com/{organization}/{project}/_apis/distributedtask/taskgroups?api-version=6.0-preview.1"
$taskGroups= Invoke-RestMethod -Method Get -Uri $url -Headers $headers -ContentType 'application/json'
$taskGroups.value[0].description = "test"
$json = $taskGroups.value[0] | ConvertTo-Json -Depth 10
$response = Invoke-RestMethod -Method Put -Uri $url -Headers $headers -ContentType 'application/json' -Body $json
假设我正在尝试更新任务组描述。
- 我通过获取请求获取所有任务组
GET https://dev.azure.com/{organization}/{project}/_apis/distributedtask/taskgroups?api-version=6.0-preview.1
- 我按名称过滤它并获取 ID。例如。
aaabbbcc-abcd-ae12-917d-97f1935b1542
- 获得 ID 后,我使用
发出 PUT 请求PUT https://dev.azure.com/{organization}/{project}/_apis/distributedtask/taskgroups/aaabbbcc-abcd-ae12-917d-97f1935b1542?api-version=6.0-preview.1
拥有 JSON 身材{ "description": "this is the new description", "id": "aaabbbcc-abcd-ae12-917d-97f1935b1542" }
但是最后一步不行。我会收到以下错误:
{
"$id": "1",
"innerException": null,
"message": "Task group aaabbbcc-abcd-ae12-917d-97f1935b1542 not found.",
"typeName": "Microsoft.TeamFoundation.DistributedTask.WebApi.MetaTaskDefinitionNotFoundException, Microsoft.TeamFoundation.DistributedTask.WebApi",
"typeKey": "MetaTaskDefinitionNotFoundException",
"errorCode": 0,
"eventId": 3000
}
我做错了什么?
最好的方法是使用您在 GET
API 中获得的任务组并更改那里的描述,然后将其转换为 JSON 并发送所有PUT
API.
例如 - 在 PowerShell 中:
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,"YOUR-PAT")))
$headers = @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$url = "https://dev.azure.com/{organization}/{project}/_apis/distributedtask/taskgroups?api-version=6.0-preview.1"
$taskGroups= Invoke-RestMethod -Method Get -Uri $url -Headers $headers -ContentType 'application/json'
$taskGroups.value[0].description = "test"
$json = $taskGroups.value[0] | ConvertTo-Json -Depth 10
$response = Invoke-RestMethod -Method Put -Uri $url -Headers $headers -ContentType 'application/json' -Body $json