使用 CLI 命令获取 AzureDevops 变量组 ID 的方法是什么

what is the way to get the variable group id of AzureDevops using CLI command

我们正在使用 AzureDevops 服务器并使用预构建任务自动化我们的管道变量组和变量创建,该任务将 运行 bash 下面的脚本并将生成变量和变量组

由于它是一个敏感信息,我们需要隐藏这个变量值,所以看到了关于秘密 vraiable 的文章。但是它确定我们不能使用与我们使用 VG 和变量相同的 az 命令一起创建秘密变量,需要通过其组 ID 调用现有创建的 VG,并且需要将秘密值作为第二步传递。

所以我面临的问题是

在我当前的 bash 脚本中,我们使用以下命令一起创建变量组和变量。

az pipelines variable-group create --project=myproject --name $variable_group_name --authorize true --variables mynKey=$my_key

因此,如果我想将其拆分为命令,我不确定如何获取创建的变量组的组 ID。

az pipelines variable-group create  --project=$projectname --name $variable_group_name --authorize true

az pipelines variable-group variable create --group-id <?????> --name myKey --project=$projectname --secret  true --value $my_key

您可以为此使用 the list command。如果您提供刚刚创建的变量组的完整组名,您应该会得到它的 ID:

az pipelines variable-group list -p myproject --group-name $variable_group_name

在Azure DevOps CLI(az pipelines variable-group create)的响应中,可以包含创建的变量组ID。

您可以直接在 CLI 响应中获取 ID。

这是一个例子:

ID=$(az pipelines variable-group create --org "https://dev.azure.com/xx/" --project "azure" --name "xx" --authorize true --variables "key=value" --query 'id' -o  json)


echo  $ID

您也可以使用日志命令将 Groupid 设置为 Pipeline 变量。

echo "##vso[task.setvariable variable=GroupID]$ID"

这是关于 get value in CLI response 的文档。

$group_id = $(az pipelines variable-group list -p $(System.TeamProject) --group-name "variable_group_name" --query '[0].id' -o json)

这会将变量组 ID 提取到 $group_id 变量中

如果变量组不存在,那么上面的内容将只是returns空结果