Dev*_*ner 7 bash azure-devops azure-pipelines azure-devops-rest-api azure-devops-pipelines
我正在编写一个 BASH 脚本,其中创建一个天蓝色存储库,然后推送代码。执行此步骤后,它将继续并通过azure-pipeline.yaml
Azure 存储库中存在的文件创建一个 Azure 管道。
在此步骤中,我们需要传递存储库 ID 才能创建管道,但这里的问题是我无法将其保留为用户输入,因为它将在脚本本身内创建,现在我对此感到震惊。
有什么方法可以直接在脚本中从新创建的存储库中获取存储库 ID 吗?
https://dev.azure.com/{{organization}}/{{project}}/_apis/pipelines?api-version=6.0-preview.1
Run Code Online (Sandbox Code Playgroud)
{
"folder": "Folder-Name",
"name": "Pipeline-Name",
"configuration": {
"type": "yaml",
"path": "azure-pipelines.yml",
"repository": {
"id": "Repo-ID",
"name": "Repo-Name",
"type": "azureReposGit"
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用JMESPathaz repos list
查询来查找 ID。例如:
az repos list \
--organization "{{organization}}" \
--project "{{project}}" \
--query "[?name == '{{respository_name}}'].id" \
--output tsv
Run Code Online (Sandbox Code Playgroud)
只需在 bash 子 shell 中使用它即可。例如result=$(cli_command)
。
这可以通过将输出作为变量保存到另一个文件中来完成(正如 @Shayki Abramczyk 所建议的),然后借助以下命令,我们可以调用脚本文件中的 ID 变量
$ jq -r '.id' Repooutput.txt
dad04f6d-4e06-4420-b0bc-cb2dcfee2dcf
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15943 次 |
最近记录: |