You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看重新触发Azure DevOps YAML失败定时流水线的用户

Azure DevOps定时流水线重新触发后获取触发者的解决方案

直接获取重新触发者的可能性

目前Azure DevOps的内置变量$(Build.RequestedFor)和$(Build.QueuedBy)会始终保留定时触发的系统账户[Microsoft.VisualStudio.Services.TFS],无论多少次重新触发失败任务,这两个变量都不会更新为实际重新触发的用户。没有直接通过内置变量获取重新触发者用户名的方法。

可行的替代解决办法

1. 通过Azure DevOps REST API获取最后操作人信息

在流水线中添加PowerShell任务,调用Builds API查询当前构建的详细信息,其中lastChangedBy字段会记录最后修改(包括重新触发失败任务)的用户信息。示例脚本如下:

$personalAccessToken = "$(System.AccessToken)"
$orgUrl = "$(System.CollectionUri)"
$projectName = "$(System.TeamProject)"
$buildId = "$(Build.BuildId)"

$headers = @{
    Authorization = "Bearer $personalAccessToken"
}

$apiUrl = "$orgUrl/$projectName/_apis/build/builds/$buildId?api-version=7.1-preview.7"
$buildDetails = Invoke-RestMethod -Uri $apiUrl -Headers $headers -Method Get

# 输出重新触发者信息
Write-Host "重新触发流水线的用户:$($buildDetails.lastChangedBy.displayName) ($($buildDetails.lastChangedBy.uniqueName))"

注意:确保流水线的服务账户拥有读取构建信息的权限。

2. 添加手动审批环节(适用于非紧急场景)

在流水线容易失败的阶段前添加手动审批任务,重新触发失败任务时必须由用户完成审批,Azure DevOps会自动记录审批者信息,后续可通过审批历史或关联的工作项记录获取该用户。

3. 自定义备注记录

要求重新触发任务的用户在触发时填写包含自身用户名的备注信息,然后在流水线中读取$(Build.ReasonComment)变量,提取并记录用户名。这种方式依赖用户主动配合,但实现成本最低。

内容的提问来源于stack exchange,提问作者Dinesh Pathapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:12:06