简体   繁体   中英

Extract releases from azure DevOps projects organization

I have an Azure DevOps organization with more 300 project and I want to extract release from the org for all DevOps project. I have tried using below PowerShell script but it is just giving 100 record at a time. and also it is saying that extracted json file is not in valid format.

Here is my PowerShell script.

$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
}

I tried adding $top parameter with first API call which works fine if I am trying in browser but in PowerShell it is not working.

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

How can I accomplish my below two requirement?

  1. How can extract all record, not just 100
  2. Why extracted json file is showing as invalid format when I am converting to excel?

If you can modify above PowerShell script for my requirement, it will be appreciated.

Thanks

Step through your code in a debugger.

$top wrapped in double quotes will try to interpolate a variable named $top . You need to escape the $ with a ` character. ie

`$top

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM