我们的项目中有多个变量组,我正在尝试找到如何将它们导出到本地桌面的方法。
到目前为止,我有一个可以导出变量组的 az 脚本,但我一次只能执行一个。我有几个变量,我想同时完成所有这些变量。有人可以帮助我如何导出多个变量并在 Azure DevOps 上使用该变量的相同名称来在保存在桌面上时匹配它吗?
az pipelines variable-group show --group-id "id number" --org "https://dev.azure.com/Organization" -p "Project" --output json > test.json
此外,当我使用脚本时,secret 的值显示为“null”而不是“false”?有什么理由这样做吗?
您可以使用以下命令一次导出多个变量组。有关详细信息,请参阅:az pipelines 变量组。
az pipelines variable-group list --org "https://dev.azure.com/Organization" --project "Project" --output json>test.json
此外,这个秘密变量是参考这篇文档:添加和使用变量组在变量组中加密的,因此我们只能从返回结果中得到“null”,这是设计使然。如果您想在 Azure Pipelines 中使用秘密变量,请参阅:设置秘密变量以获取指导。
为了下载不同 json 文件中的变量组,我创建了一个脚本来收集所有变量组,获取它们的名称,并为每个变量组创建文件夹和文件。它将在当前文件夹中创建一个子文件夹 VariableGroups。
$ProjectName = "projectName"
$Organization = "https://dev.azure.com/organizationName"
# Get variable-groups list
$vars = az pipelines variable-group list --organization $Organization --project $ProjectName
# Get variable-groups names list
$v = $vars | ConvertFrom-Json -AsHashtable
$variable_group_names = $v.name
# Go though every variable-group
foreach ($variable_group_name in $variable_group_names) {
$group = az pipelines variable-group list --organization $Organization --project $ProjectName --group-name $variable_group_name
# Get every variable-group Id
$g = $group | ConvertFrom-Json -AsHashtable
$groupId = $g.id
# Check if VariableGroups folder exist, if not - create it
if (!(Test-Path .\VariableGroups)){
New-Item -itemType Directory -Path .\VariableGroups
}
# Get every variable-group content and place it in corresponding folder
az pipelines variable-group show --organization $Organization --project $ProjectName --id $groupId --output json>.\VariableGroups\$variable_group_name.json
Write-Host created .\VariableGroups\$variable_group_name.json
}
但是如果我们的库变量组位于掩码中,那么我们就无法执行此操作。