有可能以Excel格式导出Azureure Devops管道运行历史记录吗?

时间:2019-09-13 09:18:36

标签: azure-devops

我想分析azure devops构建和发布管道的运行情况,即构建成功或失败的次数,间隔内作业的运行次数等。如果我们可以在其中导入构建和发布管道的历史记录,则可以轻松地进行这种类型的分析。 Excel格式。在天蓝色的devops中,我找不到执行此操作的任何功能。是否可以以excel格式导出构建和发布管道的运行历史记录?

2 个答案:

答案 0 :(得分:0)

正如Jayendran所说,我们可以使用rest api以excel格式导出管道运行历史记录。

这是我的powershell脚本示例:

$strURL = "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.1"
$filePath="D:\"
$fileName=$filePath+"\pipeline.json"
$pipeline = Invoke-RestMethod -Uri $strURL -Headers @{   
 Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method GET -OutFile $fileName 

您可以将Powershell任务添加到代理作业以运行上述脚本。因此,您可以.json格式将管道历史记录下载到本地。

注意,如果您使用身份验证,则需要使用私有代理运行并选中代理作业中的“ 允许脚本访问OAuth令牌”选项。我的脚本中的方法。

我在这里以构建管道为例。对于发布管道也是如此。

更新

然后,您可以使用 JSON到Excel 工具,该工具可让您快速在Excel中转​​换数据。 转到Office App Store https://store.office.com/en-us/app.aspx?assetid=WA104381080并免费添加。

使用Excel或Excel Online打开它后,您可以看到JSON to Excel选项卡已添加到Excel。单击以打开并选择启动JSON到Excel。在打开的JSON到Excel中,输入JSON数据,然后单击GO。

希望这会有所帮助。

答案 1 :(得分:0)

实际上,您可以从响应中选择所需的特定属性,然后直接导出到* .csv文件,可以使用Microsoft excel打开* .csv文件。

示例供您参考:

Param(
   [string]$collectionurl = "https://dev.azure.com/{organization}",
   [string]$project = "ProjectName",
   [string]$user = "user",
   [string]$token = "PAT/Password",
   [string]$Filename = 'D:\temp\PipelineHistory.csv'
)

# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

#BaseUrl
$buildsURL = "$collectionurl/$project/_apis/build/builds?api-version=5.1"

#Response           
$builds = (Invoke-RestMethod -Uri $buildsURL -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}).value

Write-host "Count of succeeded builds:" ($builds | where({$_.result -eq 'succeeded'})).count
Write-host "Count of failed builds:" ($builds | where({$_.result -eq 'failed'})).count

$results = @()

foreach($build in $builds){

    $customObject = new-object PSObject -property @{
          "BuildID" = $build.id
          "BuildNumber" = $build.buildNumber
          "Status" = $build.status
          "Result" = $build.result

        } 

    $results += $customObject       
}

$results | Select `
            BuildID,
            BuildNumber,
            Status,
            Result | export-csv -Path $filename -NoTypeInformation