【发布时间】:2020-05-28 15:36:10
【问题描述】:
我已经检查了How to delete multiple test cases in Azure DevOps
它不适合我。
单独使用 PowerShell 脚本,我想在 Azure DevOps 中一次性删除多个测试用例。目前,门户网站一次只允许删除一个。
我尝试过如下方式,并抛出异常。
$url = "https://dev.azure.com/testarulmouzhie/testDemo_Project/_apis/test/testcases/21?api-version=5.0-preview.1"
Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json
即使尝试使用新的 api 版本,也会出现同样的错误-
$url = "https://dev.azure.com/testarulmouzhie/testDemo_Project/_apis/test/testcases/21?api-version=5.1-preview.1"
Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json
附上参考的错误-
Invoke-RestMethod :
Azure DevOps
Service Status Support @AzureDevOps
At line:1 char:1
+ Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
谁能帮忙解决这个问题? 提前致谢。
对于 ref,无论如何简单的 GET rest api 调用都可以正常工作。我已经尝试过以下一种,并且工作正常。
$AzureDevOpsPAT = "a2wzly2bsirXXXXXXXXXXXXXXXXXXXXXXXXXXX"
$OrganizationName = "testarulmouzhie"
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$UriOrga = "https://dev.azure.com/$($OrganizationName)/"
$uriAccount = $UriOrga + "_apis/projects?api-version=5.1"
Invoke-RestMethod -Uri $uriAccount -Method get -Headers $AzureDevOpsAuthenicationHeader
【问题讨论】:
-
它在消息中显示“Azure DevOps 服务状态支持@AzureDevOps”。其他 REST 调用对您有用吗?也许是一个简单的
GET? -
@Ash ,是的,简单的 GET 就像一个魅力!
-
您可以将其发布为关闭此问题的答案。
-
@JoeyCai,提到 Get 已经工作,但 Delete 抛出错误,我想做 Delete 调用。
-
如果您也使用latest version of the API,
DELETE是否有效?我看到您的GET示例适用于 5.1。如果没有,可能是您没有使用此方法或调用此 API 的权限吗?请尝试使用最新版本并在代码块中而不是屏幕截图中发布完整的错误。
标签: azure powershell azure-devops azure-rest-api