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