获取curl响应并在Azure devops yaml管道参数中显示

inn6fuwd  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(87)

我有一个任务要调用REST,并在Azure管道模态窗口中将响应显示为下拉列表。
如有任何建议或想法,我们将不胜感激。
我尝试的一个方法是运行一个powershell脚本,并尝试访问yaml文件的参数部分的输出。[但无法实现它]

hfyxw5xn

hfyxw5xn1#

通常,在运行管道之前设置运行时参数。在管道运行期间不可能动态设置参数。
对于您的情况,您可以尝试以下方法之一。

尝试通过REST API触发管道并将响应传递给参数。

在运行REST API调用并获得其响应后,您可以使用Azure DevOps REST API "Runs - Run Pipeline"触发管道,并将上一个API调用的响应作为Azure DevOps REST API的请求主体中的参数值传递。

{
    . . .
    "templateParameters": {
        "{parameterName}": "{parameterValue}"
    },
    . . .
}
  • 将**{parameterName}**替换为要为管道设置的运行时参数的实际名称。
  • 将**{parameterValue}**替换为实际值(上一个API调用的响应)。
  • 如果在管道的YAML文件中预定义了同名参数,Azure DevOps REST API将使用在请求主体中设置的新值覆盖原始值(对先前API调用的响应)。
  • 如果尚未预定义该参数,REST API将为当前触发的管道运行创建一个新参数。
在管道运行时将响应传递给管道变量。

在管道中,可以添加一个阶段作为第一个阶段。在此阶段中,可以运行API调用以获取其响应,并使用事件记录注解"SetVariable"将响应设置为输出变量。

echo "##vso[task.setvariable variable={varName};isoutput=true]{varValue}"
  • 将**{varName}**替换为您喜欢的实际变量名。
  • 将**{varValue}**替换为实际值(上一个API调用的响应)。

在同一个流水线中,将需要使用响应的其他阶段设置为依赖于第一阶段,以便它们可以使用来自第一阶段的输出变量(请参阅此处)。

相关问题