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

如何通过Azure DevOps REST API从本地Azure DevOps Server导出指定构建间变更的工作项至Excel并生成发布说明

如何通过Azure DevOps REST API从本地Azure DevOps Server导出指定构建间变更的工作项至Excel并生成发布说明

嗨,我看到你作为新手已经尝试写出了基础脚本,这已经很棒了!我来一步步帮你完善代码,解决导出Excel和生成发布说明的问题。

一、修正并完善获取工作项的PowerShell脚本

你现有脚本里有个小语法错误:$responsewe.value | ConvertTo-Json write-host $d1这行不能连写,得分开执行。另外我们可以优化脚本结构,增加错误捕获,方便后续排查问题。下面是修正后的完整基础脚本:

# 配置核心参数
$AzureDevOpsPAT = "**********************************" # 你的个人访问令牌(PAT)
$fromBuildId = "161" # 起始构建ID
$toBuildId = "176" # 结束构建ID
$AzureDevOpsServer = "AzureDevOpsServerName" # 你的本地Azure DevOps服务器名称
$projectName = "ProjectName" # 目标项目名称

# 构建API认证头
$AzureDevOpsAuthenicationHeader = @{
    Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)"))
}

# 注意:确保你的PAT令牌拥有**Build(读取)**和**Work Items(读取)**权限,否则API请求会失败

# 构建API请求地址
$uriAccount = "https://$AzureDevOpsServer/DefaultCollection/$projectName/_apis/build/workitems?fromBuildId=$fromBuildId&toBuildId=$toBuildId&api-version=5.0"

# 调用API获取工作项数据
try {
    $responsewe = Invoke-RestMethod -Uri $uriAccount -Method Get -Headers $AzureDevOpsAuthenicationHeader
    $workItems = $responsewe.value
    Write-Host "成功获取到 $($workItems.Count) 个变更工作项"
}
catch {
    Write-Host "API请求失败:$($_.Exception.Message)"
    exit 1
}

二、将工作项导出到Excel文件

要在PowerShell中便捷处理Excel,推荐使用社区维护的ImportExcel模块(免费且易用),步骤如下:

  1. 先安装模块(仅需安装一次):
Install-Module -Name ImportExcel -Scope CurrentUser -Force
  1. 在基础脚本末尾添加导出Excel的代码:
# 筛选并整理需要导出的字段(可根据需求自行调整)
$exportData = $workItems | Select-Object `
    @{Name="工作项ID"; Expression={$_.id}},
    @{Name="工作项类型"; Expression={$_.fields.'System.WorkItemType'}},
    @{Name="标题"; Expression={$_.fields.'System.Title'}},
    @{Name="状态"; Expression={$_.fields.'System.State'}},
    @{Name="指派给"; Expression={$_.fields.'System.AssignedTo'.displayName}},
    @{Name="创建日期"; Expression={$_.fields.'System.CreatedDate'}}

# 导出到指定路径的Excel文件
$exportPath = "构建变更工作项列表.xlsx"
$exportData | Export-Excel -Path $exportPath -AutoSize -BoldTopRow
Write-Host "已成功导出工作项到文件:$exportPath"

这段代码会自动创建Excel文件,并且自动调整列宽、加粗表头,让表格更易读。

三、基于工作项生成发布说明

我们可以把工作项整理成清晰的Markdown格式发布说明,方便团队查看或直接复制到Azure DevOps发布记录中。在脚本末尾添加以下代码:

# 构建发布说明内容
$releaseNotes = "# 发布说明`n`n## 本次构建变更工作项`n"

# 按工作项类型分组(比如需求、Bug、任务)
$groupedWorkItems = $workItems | Group-Object -Property { $_.fields.'System.WorkItemType' }

foreach ($group in $groupedWorkItems) {
    $releaseNotes += "### $($group.Name)`n"
    foreach ($item in $group.Group) {
        $releaseNotes += "- **#$($item.id)** $($item.fields.'System.Title')`n"
    }
    $releaseNotes += "`n"
}

# 保存发布说明到本地文件
$releaseNotesPath = "发布说明.md"
$releaseNotes | Out-File -Path $releaseNotesPath -Encoding utf8
Write-Host "已成功生成发布说明到文件:$releaseNotesPath"

生成的Markdown文件会按工作项类型分组展示,结构清晰,直接就能用。

完整脚本整合

把上面三部分代码合并起来,就是一个从获取数据到导出Excel、生成发布说明的完整流程脚本,你可以直接运行使用。

备注:内容来源于stack exchange,提问作者Herr_grun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 10:27:58