如何使用 Azure DevOps REST API 创建新的构建管道?

Kum*_*N S 3 rest azure-devops azure-pipelines azure-devops-rest-api

我正在尝试以编程方式创建新的构建管道。我正在为此操作寻找 Azure DevOps REST API。我没有得到使用 REST API 创建管道的正确示例。

请指教。

Leo*_*SFT 5

如何使用 Azure DevOps REST API 创建新的构建管道?

要创建新的构建管道,我们可以使用 REST API定义 - 创建

POST https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=5.0
Run Code Online (Sandbox Code Playgroud)

但是我们需要在Request Body中提供太多的信息,这将是一个大工程并且容易出错。这也是文档没有在那里提供示例请求正文的原因。

为了解决这个问题,通常我们会使用 REST API Definitions - Get从模板管道中获取响应正文:

GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=5.0
Run Code Online (Sandbox Code Playgroud)

然后我们只需要通过修改Response Body来更新相应的属性即可。

现在,我们获得了新管道的新请求正文,我们可以将它与 REST APIDefinitions - Create一起使用来创建新管道。

您可以查看此线程以获取更多详细信息。

更新:

创建构建定义后,它会创建 azure-pipelines.yml 文件并像 Azure Repos 一样存储在存储库中吗?

不,如果你想使用rest api创建一个YAML类型的构建定义,它不会创建对应的yaml文件到我们的repo,因为这个APIDefinitions - Create只发送请求体到pipeline并不会操作我们的repo。目前,它支持创建链接到 Git 存储库中的 YAML 文件的构建定义。如果你想自动创建 yaml,你可以检查 REST API Pushes - Create

这应该是 REST APIDefinitions - Create需要改进以支持 YAML 管道的地方。您可以在我们的 UserVoice 站点 ( https://developercommunity.visualstudio.com/content/idea/post.html?space=21 )上添加对此功能的请求,这是我们提供产品建议的主要论坛。感谢您帮助我们构建更好的 Azure DevOps:

在此处输入图片说明

希望这可以帮助。