首页 > 解决方案 > 找出有多少用户正在使用/创建 TFS 构建

问题描述

我正在使用 TFS 2015 服务器。作为管理员,我想看看有多少用户正在使用/创建 TFS 构建到 tfs 2015 服务器?是否可以使用查询从 TFS SQL 数据库中获取这些数据?

标签: tfsbuildtfs-2015

解决方案


我想看看有多少用户正在使用/创建 TFS 构建到 tfs 2015 服务器?

恐怕没有办法让使用/创建 TFS 构建的用户。

我们可以使用 REST API Builds - List来获取所有流水线的当前状态,然后判断流水线的状态是否为inprocess,如果是,则输出使用该流水线的用户名。

以下是我的测试样本:

$connectionToken="$(PAT)"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))

$PipelineUrl = "https://dev.azure.com/<OrganizationName>/Test/_apis/build/builds?api-version=5.0" 


$Pipelines = (Invoke-RestMethod -Uri $PipelineUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})

$PipelinesId = $Pipelines.value.id


ForEach ($Pt in $PipelinesId)

{
    $baseUrl = "https://dev.azure.com/<OrganizationName>/Test/_apis/build/builds/$($Pt)?api-version=5.1"                   
    $response = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
   
    $PipelinesStaus = $($response.status | ConvertTo-Json -Depth 100)

    
     If("$PipelinesStaus" -eq '"inProgress"'){
     
         $WhoUsingPipeline = $($response.requestedBy.displayName | ConvertTo-Json -Depth 100)
         Write-Host "People who using builds = $WhoUsingPipeline"
     
         }
}

测试结果:

在此处输入图像描述


推荐阅读