我正在尝试通过Powershell脚本收集有关Azure Devops中发布的一些指标。
我的开发经验非常有限,并且是PowerShell的新手。这是我第一次使用API。到目前为止,我已经能够进行身份验证,返回发布列表,遍历发布并将数据导出到文件中。现在,我需要根据发布名称的子字符串来过滤发布。作为记录,我一直在Postman中进行初始测试,以确保语法和结果正确。然后,我将工作语法迁移到了Powershell。
https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0
如果我添加id过滤器,如下所示:
https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseId=34567
我得到这个结果:
"id": 34567,
"name": "Test-Release-MyService",
但是,如果发布名称使用相同的过滤器格式,
https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseName="Test-Release-MyService"
无论是否将字符串用引号引起来,我都会得到50个结果均不符合该条件的结果。此外,我真正想做的是使响应仅包含releaseName包含“ XYZ”的记录。
那么问题是:是否有“包含” 的过滤器运算符,所以我只返回发布名称包含“ XYZ”子字符串的记录?
谢谢您的建议。
答案 0 :(得分:0)
您在Azure DevOps REST API中使用的每个参数都必须与文档中的描述一致,Azure DevOps REST API不支持自定义参数。对于您的问题,参数searchText
用于过滤具有包含关键字的发布名称的搜索结果。我已经过POSTMAN的测试,可以调用api,它可以正常工作。另外,参数searchText
的值不区分大小写。 Filter release name
如果您想进行更多过滤,实际上您可以使用powershell或其他客户端库反序列化对对象的json响应,并进行一些转换或过滤。以下文档可能对您有所帮助:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json?view=powershell-6 https://devblogs.microsoft.com/scripting/playing-with-json-and-powershell/