powershell - 使用 Powershell 从 Azure Devops 检索信息
问题描述
我正在尝试使用带有 Powershell 的 Azure Devops API 自动部署 Azure Devops 中的版本。我能够检索上一个版本定义,但我无法提取特定环境的版本。
我希望检索最后一个“产品”版本以获取“版本 ID”,然后使用 HTTP“补丁”请求将该版本部署到 UAT 或 DEV。
我可以手动点击一个 URL(下面的示例),它为我提供了 DEV 的最后一个版本(definitionEnvironmentId=1),我知道我可以轻松地将环境 ID 更改为“12”以进行生产,但我想得到这个通过 API 调用。
https://{redacted url}/{redacted}/{redacted}/_apis/release/deployments?api-version=6.0&definitionId=1&definitionEnvironmentId=1&$top=1
任何想法,如果这是可能的,因为我找不到任何信息?
解决方案
您使用的是正确的部署 - 列出Rest api。您没有通过 powershell 从 api 调用中获得任何信息的原因是您没有转义url$
中参数的特殊字符。$top
$
是 powershell 中的一个特殊字符。您应该通过在 url 中添加反引号 '`' 来转义它。见下文:
#add ` to $top parameter
$url = "https://{redacted url}/_apis/release/deployments?definitionId=3&definitionEnvironmentId=5&`$top=1&api-version=6.0"
$connectionToken="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$response= Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
$releaseId = $response.value[0].release.id
推荐阅读
- react-native - 在 mac 上使用 android 响应原生 0.64 构建问题(我没有使用 m1 mac)
- python - opencv无法提取图像中的最大轮廓
- matcher - LEMMA 模式找不到模式
- powerbi-desktop - PowerBI Forecast x 轴按会计月份而非日历月份排序
- node.js - 无法在 Gatsby 项目中连接 MongoDb Atlas
- google-cloud-firestore - 在 imperiumlabs GeoFirestore getAtLocation 中,半径单位是什么?米还是公里?
- .htaccess - 使用另一个重定向时自定义 ErrorDocument 停止工作
- angular - 尝试与端点 restAPI 连接时出现可观察到的错误
- racket - 如何使用代数球拍解构 let 绑定中的值
- php - 通过 update_user_meta 添加自定义数据来验证 Wordpress 用户的交易?