【问题标题】:Azure-Devops API Calls in PythonPython 中的 Azure-Devops API 调用
【发布时间】:2020-08-24 15:31:30
【问题描述】:

我目前正在尝试设置一个启动我正在编写的 Python 脚本的 Jenkins 管道。在这个 Python 脚本中,我需要弄清楚如何使用 Azure DevOps API 调用。例如,我尝试做的第一个任务是下载一个 Artifact。

执行此操作的典型 azure-cli 命令是:

az artifacts universal download --organization \"https://dev.azure.com/yourorg/\" --feed yourfeed --name your_artifact --version * --path .

有人知道如何用 Python 写出 azure-devops api 调用吗?

【问题讨论】:

  • Az CLI 不是 REST API。它在幕后使用它,但请告诉我们您的意图是使用 Az CLI 还是 Rest API

标签: python jenkins azure-devops


【解决方案1】:

据此ticket。我们可以通过以下方式调用 Azure CLI。例如:

from azure.cli.core import get_default_cli
get_default_cli().invoke(['artifacts', 'universal', 'download', '--organization', '\"https://dev.azure.com/yourorg/\"', '--feed', 'yourfeed', '--name', 'your_artifact', '--version', '*', '--path'])

如果遇到No module named 'azure.cli.command_modules'错误,请安装azure-cli

要开始使用 Azure CLI 的 Azure DevOps 扩展,请参阅this

关于如何从python脚本调用azure-cli,也可以参考github上的这个sample

【讨论】:

  • 我正沿着这条路前进,但我遇到了你指出的那个问题,它指出没有名为 azure 的模块。我之前在运行这些脚本的 Jenkins 主机上安装了 azure-cli 和 devops 扩展,但仍然收到此错误。这是我的 az --version 输出:azure-cli 2.10.1 command-modules-nspkg 2.0.3 core 2.10.1 nspkg 3.0.4 telemetry 1.0.4 Extensions: azure-devops 0.18.0
  • 我不确定这是否会影响任何事情,但我忘了提到我们的 Jenkins 设置在 Docker 容器中运行。
猜你喜欢
  • 2020-11-26
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-17
  • 2020-11-29
相关资源
最近更新 更多