【发布时间】:2021-11-19 18:23:15
【问题描述】:
我有一个包含 300 多个项目的 Azure DevOps 组织,我想从该组织中提取所有 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
}
我尝试在第一个 API 调用中添加 $top 参数,如果我在浏览器中尝试它可以正常工作,但在 PowerShell 中它不起作用。
https://dev.azure.com/uniperteamservices/_apis/projects?api-version=6.0&$top=500
我怎样才能完成我的以下两个要求?
- 如何提取所有记录,而不仅仅是 100 个
- 为什么在我转换为 excel 时提取的 json 文件显示为无效格式?
如果您可以根据我的要求修改上述 PowerShell 脚本,我们将不胜感激。
谢谢
【问题讨论】:
标签: powershell azure-devops azure-devops-rest-api