在本地使用 PowerShell 获取分支上的 Azure DevOps 最后构建 ID
Use PowerShell locally to get Azure DevOps last build id on branch
出于开发目的,我们需要通过 Visual Studio 在本地启动一个 PowerShell 脚本,该脚本的任务是获取特定分支的最后构建 ID。
到目前为止,我已经尝试了很多基于此的选项:
$WebClient = New-Object Net.WebClient
Write-Host "Downloading patches and binaries"
Write-Host "Get ID"
$url = "https://oldrepo.visualstudio.com/ProjectA/_apis/build/latest/14?branchName=master"
$result = $WebClient.DownloadString($url)
Write-Host $result
但是 result
值 returns 是 azure 的登录页面而不是我的存储库。但是,如果我在浏览器中粘贴相同的 url,我会得到正确的页面。
我想请求中传递了某种 cookie/AD 凭据,但我没有通过开发人员工具看到任何相关内容。
我尝试像这样手动设置 WebClient 对象的凭据:
#$creds = Get-Credential -UserName "User" -Message "Login"
#$WebClient.Credentials = $creds
#$WebClient.UseDefaultCredentials = $true
但无济于事。我错过了什么?
我使用 Invoke-RestMethod
获取 Azure DevOps Rest API 响应,您需要使用 Personal Access Token:
进行身份验证
$token = "YOUR-PAT"
$base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$token)))
$header = @{Authorization=("Basic {0}" -f $base64Auth)}
$url = "https://oldrepo.visualstudio.com/ProjectA/_apis/build/latest/14?branchName=master"
$result = Invoke-RestMethod -Uri $url -Method Get -ContentType application/json -Headers $header
出于开发目的,我们需要通过 Visual Studio 在本地启动一个 PowerShell 脚本,该脚本的任务是获取特定分支的最后构建 ID。
到目前为止,我已经尝试了很多基于此的选项:
$WebClient = New-Object Net.WebClient
Write-Host "Downloading patches and binaries"
Write-Host "Get ID"
$url = "https://oldrepo.visualstudio.com/ProjectA/_apis/build/latest/14?branchName=master"
$result = $WebClient.DownloadString($url)
Write-Host $result
但是 result
值 returns 是 azure 的登录页面而不是我的存储库。但是,如果我在浏览器中粘贴相同的 url,我会得到正确的页面。
我想请求中传递了某种 cookie/AD 凭据,但我没有通过开发人员工具看到任何相关内容。
我尝试像这样手动设置 WebClient 对象的凭据:
#$creds = Get-Credential -UserName "User" -Message "Login"
#$WebClient.Credentials = $creds
#$WebClient.UseDefaultCredentials = $true
但无济于事。我错过了什么?
我使用 Invoke-RestMethod
获取 Azure DevOps Rest API 响应,您需要使用 Personal Access Token:
$token = "YOUR-PAT"
$base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$token)))
$header = @{Authorization=("Basic {0}" -f $base64Auth)}
$url = "https://oldrepo.visualstudio.com/ProjectA/_apis/build/latest/14?branchName=master"
$result = Invoke-RestMethod -Uri $url -Method Get -ContentType application/json -Headers $header