我正在尝试制作一个包含 Azure CLI 命令的 PowerShell 脚本来检索有关存储库的信息,我是 azure DevOps 的新手。
我试图收集的信息是存储库列表、它们的分支、最新提交和作者。
我已经阅读了 AZ Repos 文档,但无法正确执行它,这是我迄今为止完成的代码。
$orgUrl = "https://dev.azure.com/{MyOrganization}"
$ProjectUrl = "https://dev.azure.com/{MyOrganization}/_apis/git/repositories?api-verepo_demo/sion=4.1"
$env:SYSTEM_ACCESSTOKEN | az devops login --org $org --project $ProjectUrl
foreach ($Proj in $ProjectUrl)
{
$Repos = az repos list --organization $orgUrl --project $Proj | ConvertFrom-Json
foreach ($Repo in $Repos) {
Write-Output $Repo.webUrl
}
最佳答案
看起来您已经到了那里...但是您粘贴的代码中有一些非常错误的地方,我猜代码不完整。
$orgUrl = "https://dev.azure.com/{MyOrganization}"
# there is an error in the project url below, it should contain the project name. Plus, you need to pass the project name, not the full URI.
$ProjectUrl = "https://dev.azure.com/{MyOrganization}/_apis/git/repositories?api-verepo_demo/sion=4.1"
$env:SYSTEM_ACCESSTOKEN | az devops login --org $org --project $ProjectUrl
# you can't for each through a url. I assume you had some az DevOps list command here previously.
foreach ($Proj in $ProjectUrl)
{
# you should probably enforce json output here.
$Repos = az repos list --organization $orgUrl --project $Proj | ConvertFrom-Json
foreach ($Repo in $Repos) {
Write-Output $Repo.webUrl
}
}
如果您只查询单个项目,您可以简单地对项目名称进行硬编码:
$orgUrl = "https://dev.azure.com/{MyOrganization}"
$project = "demo"
$env:SYSTEM_ACCESSTOKEN | az devops login --org $org --project $project
$Repos = az repos list --organization $orgUrl --project $project -o json | ConvertFrom-Json
foreach ($Repo in $Repos) {
Write-Output $Repo.webUrl
}
关于azure - 如何在 azure 管道中使用 AZURE cli 命令列出信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70750731/