在Azure Devops生成管道中将terraform计划输出添加为PR注释

问题描述 投票:-1回答:1

在我当前的任务中,我正在将terraform集成到我们的Azure DevOps CI / CD管道。我的要求如下:

  1. 创建PR应该触发构建管道。
  2. 构建管道中的任务应向提出的PR发布评论。评论内容将是terraform计划的输出,即将要部署的新基础架构。
  3. 一旦批准了PR并将代码合并到母版中,就会触发CD管道,将基础结构部署到Azure。

到目前为止,我对1和3的要求都进行了排序,但是我不知道如何使用Terraform Plan命令中的内容发布有关PR的注释。是否有任何内置任务?如果没有,我该如何实现?这有可能吗?如果是这样,有人可以指出可以提供帮助的资源还是仅显示相同的.yml文件?

我进行了很多搜索,但没有找到任何东西。我的猜测是您无法在构建管道中添加评论。需要您的建议。

azure-devops terraform devops
1个回答
0
投票

将Terraform计划输出添加为Azure Devops生成管道中的PR注释

目前,恐怕没有这样一种现成的方式可以将terraform plan输出添加为PR评论。

我现在正在考虑的解决方法是调用Rest API以使用terraform plan命令中的内容创建PR注释。

我们可以使用Rest API Pull Request Thread Comments - Create

POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/threads/{threadId}/comments?api-version=5.1

创建对PR的评论。

但是以上API需要pullRequestId。因此,我们还需要另一个API来获取当前项目pullRequestIdPull Requests - Get Pull Requests By Project

GET https://dev.azure.com/{organization}/{project}/_apis/git/pullrequests?api-version=5.1

它将返回一系列的pullRequestId,然后我们可以使用powershell参数Select-Object -first 1,例如:$LastPullRequestId= $pullRequestIds.value.id | Select-Object -first 1以获取最新的pullRequestId

因此,我们可以在构建管道中添加两个内联powershell任务来调用Rest API以获取最新的pullRequestId,然后使用此pullRequestId创建PR注释。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.