我希望能够分析Azure DevOps的构建和发布流水线运行情况,比如成功或失败的构建数量、在时间间隔内运行的作业数等。如果我们能够将构建和发布流水线历史记录导入Excel格式,那么这种类型的分析就可以很容易地完成。但是在Azure DevOps中,我找不到任何可以实现这一点的功能。是否有可能以Excel格式导出构建和发布流水线运行历史记录?
我希望能够分析Azure DevOps的构建和发布流水线运行情况,比如成功或失败的构建数量、在时间间隔内运行的作业数等。如果我们能够将构建和发布流水线历史记录导入Excel格式,那么这种类型的分析就可以很容易地完成。但是在Azure DevOps中,我找不到任何可以实现这一点的功能。是否有可能以Excel格式导出构建和发布流水线运行历史记录?
实际上,您可以从响应中选择所需的特定属性,并直接导出为*.csv文件,该*.csv文件可使用Microsoft Excel打开。
以下是参考样例:
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
$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