从azure DevOps项目组织中提取版本



我有一个Azure DevOps组织,有300多个项目,我想从组织中提取所有DevOps项目的发布。我试过使用下面的PowerShell脚本,但它只是一次给出100条记录。而且它还说提取的json文件不是有效的格式。

这是我的PowerShell脚本。

$token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
$url = "https://dev.azure.com/{orgnization}/_apis/projects?api-version=6.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token" } -Method Get -ContentType application/json
Foreach ($projectName in $response.value.name) {

$url1 = "https://vsrm.dev.azure.com/{orgnization}/$($projectname)/_apis/release/releases?api-version=6.0"

$response = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token" } -Method Get -ContentType application/json-patch
echo $response | ConvertTo-Json -Depth 99 |  Out-File "D:\file.json" -Append
}

我尝试添加$top参数与第一个API调用工作正常,如果我在浏览器中尝试,但在PowerShell它不工作。

https://dev.azure.com/uniperteamservices/_apis/projects?api-version=6.0&$top=500 

我怎样才能完成以下两个要求?

  1. 如何提取所有记录,而不仅仅是100
  2. 为什么提取的json文件显示为无效格式,当我转换到excel?

如果您能根据我的要求修改以上PowerShell脚本,我将不胜感激。

感谢

在调试器中逐步检查代码

用双引号括起来的$top将尝试插入一个名为$top的变量。您需要用'字符转义$。例如

`$top

最新更新