使用PowerShell调用Azure DevOps REST API创建查询顶层文件夹报错求助
Azure DevOps创建查询文件夹报错TF400898的解决办法
问题根源
你的代码存在4个关键错误,导致内部服务报错:
- URI占位符未替换:原URI中的
{query}是文档占位符,需替换为实际父文件夹的路径或ID - Content-Type不匹配:
application/json-patch+json用于资源更新操作,创建新文件夹应使用application/json - 参数类型错误:
isFolder需传入布尔值$true,而非字符串"true" - 未指定父节点:创建文件夹必须明确指定父容器(如
Shared Queries),无法直接创建无归属的顶层文件夹
修正后的代码
$pat = "aaa" $organization="bbb" $project = "ccc" # 指向Shared Queries父文件夹,在此下创建子文件夹 $uri = "https://dev.azure.com/$organization/$project/_apis/wit/queries/Shared%20Queries?api-version=7.1-preview.2" $body = @{ name = "Newfolder" isFolder = $true # 使用布尔值而非字符串 } $jsonbody = ConvertTo-Json $body $headers = @{ Authorization = "Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($pat)")) "Content-Type" = "application/json" # 修正为创建操作对应的Content-Type } $response = Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $jsonbody
补充说明
- 若需在嵌套路径下创建文件夹,只需修改URI中的父路径,例如在
Shared Queries/ExistingFolder下创建时,URI改为https://dev.azure.com/$organization/$project/_apis/wit/queries/Shared%20Queries/ExistingFolder?api-version=7.1-preview.2 - 确保你的PAT拥有**工作项(读写)**权限,否则会触发权限类错误
- 若路径转义出现问题,可使用父文件夹的GUID替换路径,GUID可通过GET请求
https://dev.azure.com/$organization/$project/_apis/wit/queries/Shared%20Queries?api-version=7.1-preview.2获取返回结果中的id字段
内容的提问来源于stack exchange,提问作者user23314406
相关产品推荐
相关产品推荐

