westinq
westinq

Reputation: 43

How to filter results of an Azure Devops REST API GET request

I am trying to collect some metrics on releases in Azure Devops via a Powershell script.

I have very limited dev experience and am new to PowerShell. And this is the first time I have worked with an API. So far I have been able to authenticate, return a list of releases, loop through them and export the data to a file. Now I need to filter the releases based on a substring of the release name. For the record I have been doing my initial testing in Postman to make sure my syntax and results are correct. Then I migrated working syntax to Powershell.

https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0

If I add the id filter as shown here: https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseId=34567

I get this result:

"id": 34567, "name": "Test-Release-MyService",

But if use the same filter format for Release Name, https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseName="Test-Release-MyService"

I get back 50 results of which none match that criteria, whether I wrap the string in quotes or not. Furthermore, what i really want to do is to have the response only include records where the releaseName contains "XYZ".

So the question: Is there a filter operator for "contains" so I only get back records where the release name contains the "XYZ" substring?

Thanks in advance for your advice.

Upvotes: 0

Views: 5513

Answers (1)

Lu Mike
Lu Mike

Reputation: 707

Every parameter you used in Azure DevOps REST API needs to be consistent with the description in the document, Azure DevOps REST API does not support custom parameters. For your question, the parameter searchText is used to filter the the searching result with the release name containing the keyword. I have tested with POSTMAN to call the api, it works fine. In addition, the value of parameter searchText is not case-sensitive. Filter release name

If you want to do more filter, in fact you can use powershell or other client library to deserialize the json response to an object, and do some convert or filter. Following documents may be helpful for you:

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json?view=powershell-6 https://devblogs.microsoft.com/scripting/playing-with-json-and-powershell/

Upvotes: 1

Related Questions