我正在尝试编写一个Python脚本,该脚本启动一个子进程,以便在执行文件后运行Azure CLI命令。
当我在本地运行时,我运行:
az pipelines create --name pipeline-from-cli --repository https://github.com/<org>/<project> --yml-path <path to pipeline>.yaml --folder-path _poc-area
系统提示我输入如下内容:
Which service connection do you want to use to communicate with GitHub?
[1] Create new GitHub service connection
[2] <my connection name>
[3] <org name>
Please enter a choice [Default choice(1)]:
我可以键入2并按Enter键,然后在Azure DevOps中成功创建我的管道。我希望在提示时运行动态输入的此命令。
到目前为止,我已经尝试:
import subprocess
cmd = 'az pipelines create --name pipeline-from-cli --repository https://github.com/<org>/<project> --yml-path <path to pipeline>.yaml --folder-path _poc-area
cmd = cmd.split()
subprocess.run(cmd, shell=True)
这将以与我尝试在本地运行时完全相同的方式运行。
尝试遵循here的答案我也尝试过:
p = subprocess.run(cmd, input="1", capture_output=True, text=True, shell=True)
print(p)
这给了我一个错误,说raise NoTTYException(error_msg)\nknack.prompting.NoTTYException
。
有没有一种方法可以让我执行这个Python脚本,它会运行Azure CLI命令,然后在提示时输入2,而无需任何手动干预?
1条答案
按热度按时间0lvr5msh1#
您试图解决错误的问题。
az pipeline create
采用--service-connection
参数。您不需要响应提示,可以在命令行上提供服务连接值并完全跳过提示。