rest - 用于获取存储库列表的 Azure REST API 返回 0 个存储库
问题描述
我有一个在 Azure Devops 的构建管道中运行的 Powershell 脚本,并且我有一个调用来从项目中返回一个存储库列表。出于某种原因,当我知道我应该得到 2 个时,我总是得到一个 0 个 repos 的列表。
$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
$username
是我的 Windows 用户,应该是我传递的值
$testpat
是我的个人访问令牌,它在整个组织中具有完全访问权限
至于我的构建管道,我的代理池是我的本地池。我不确定为什么会这样。
已编辑
除此之外,我在 Azure 上的其他自动化 Powershell 脚本之后设置了我的构建管道。唯一的区别是它们运行的项目和脚本的名称。
解决方案
我想到了。$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 循环允许我正确地循环遍历数组。
推荐阅读
- flutter - 从 html 页面获取标题 - FLUTTER
- html - Vuetify v-img 不使用绝对路径加载图像
- swift - “隐式展开的属性”警告?
- c# - 如何仅获取文本框中输入的字符?
- html - ASP.NET MVC 和 VS2013 结合使用哪些技术来构建多平台响应式网页设计(RWD)
- spring-boot - Cloud Foundry css 文件返回 502 Bad Gateway: Registered endpoint failed to handle the request
- c++ - 在 macOS 上用 C++ 构建的未定义符号
- c# - C#.NET 中的模拟 - 无法通过 LogonType 4 或 5 模拟
- python - 优化python中的蛮力算法
- python - 在 Tkinter Python 中将文本放在变量后面