Azure DevOps部署完成后,如何通过发布流水线发送工作项?
在Azure DevOps发布流水线中部署完成后发送包含工作项的邮件
方法1:PowerShell脚本结合REST API实现
- 添加PowerShell任务:在发布流水线的部署后阶段(如
Post-deployment)新增PowerShell任务。 - 获取发布关联的工作项:调用Azure DevOps REST API拉取当前发布绑定的工作项数据,脚本示例:
$releaseId = $(Release.ReleaseId) $orgUrl = $(System.TeamFoundationCollectionUri) $projectName = $(System.TeamProject) $pat = "$(System.AccessToken)" $headers = @{ Authorization = "Bearer $pat" } $workitemsUrl = "$orgUrl$projectName/_apis/release/releases/$releaseId/workitems?api-version=7.1-preview.2" $workitems = Invoke-RestMethod -Uri $workitemsUrl -Headers $headers -Method Get # 格式化工作项内容 $workitemContent = "" foreach ($wi in $workitems.value) { $workitemContent += "- 工作项ID: $($wi.id) | 标题: $($wi.title) | 状态: $($wi.fields.'System.State')`n" } # 将内容设为流水线变量,供后续邮件任务调用 Write-Host "##vso[task.setvariable variable=WorkItemDetails;isOutput=true]$workitemContent" - 配置Send Email任务:在PowerShell任务后添加Send Email任务,在邮件正文区域引用变量
$(WorkItemDetails),即可将工作项信息插入邮件内容。- 注意:需在代理作业设置中勾选「允许脚本访问OAuth令牌」,确保
System.AccessToken有权限读取工作项。
- 注意:需在代理作业设置中勾选「允许脚本访问OAuth令牌」,确保
方法2:使用Marketplace扩展
直接安装Azure DevOps Marketplace中的专用扩展(如Release Work Items Notifier),这类扩展提供可视化配置界面,可直接设置发布完成后自动发送包含工作项的邮件,无需手动编写API调用脚本。
方法3:通过项目通知规则设置
在Azure DevOps项目设置的「通知」模块中创建规则:
- 触发条件选择「发布已完成」,并添加筛选条件限定关联工作项的范围
- 通知方式选择邮件,指定收件人用户或组,即可在发布完成时自动推送工作项相关通知
内容的提问来源于stack exchange,提问作者Anjireddy Munnangi
相关产品推荐
相关产品推荐

