用于获取仓库清单的Azure REST API返回0仓库

时间:2019-11-19 16:23:29

标签: rest azure-devops

我有一个Powershell脚本正在Azure Devops的生成管道中运行,并且我有一个调用来从项目中返回存储库列表。出于某种原因,当我知道应该得到2时,总是得到0个回购清单。

for k in range(d)

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$testpat))) $repositories = (Invoke-WebRequest -Uri https://dev.azure.com/$organization/$project/_apis/git/repositories?api-version=5.1 -Proxy http:\\webproxy.testcomp.ca:1080 -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ProxyUseDefaultCredentials).Content | ConvertFrom-Json | Select-Object -ExpandProperty value Write-Host "New repos length: " $repositories.Length 是我的Windows用户,应该是我传递的值 $username是我的个人访问令牌,可以在整个组织中进行完全访问

对于我的构建管道,我的代理池是我的内部部署池。我不确定为什么会这样。

已编辑

为此,我已经在Azure上的其他自动Powershell脚本之后设置了构建管道。唯一的区别是它们运行的​​项目以及脚本的名称。

1 个答案:

答案 0 :(得分:0)

我知道了。 $ repositories.Length没有给我数组的实际长度。

$repositories = (Invoke-WebRequest -Uri https://dev.azure.com/$organization/$project/_apis/git/repositories?api-version=5.1 -Proxy http://webproxy.testcomp.ca:1080 -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ProxyUseDefaultCredentials).Content | ConvertFrom-Json | Select-Object -ExpandProperty value

$repositories | ForEach-Object -Process {
}

此ForEach循环使我可以正确遍历数组。