我们可以将 Azure DevOps 工作项字段导出到 Excel

Can we export Azure DevOps work item fileds into Excel

我们在 Azure DevOps Boards 中有不同类型的工作项。我们需要将工作项中所有字段的列表导出为 excel 或任何类似格式。有没有一种方法可以使用 API 来提取系统中所有字段的列表以及任何可用的关联元数据?有人可以帮助我们完成这项任务吗?

您可以使用 Excel 的 Azure DevOps Office® Integration 2019 连接器来批量提取数据。调用 API 有一个限制,我认为它可能是 10,000 个工作项。当您 运行 使用条件

时,您可以通过将查询分开来绕过此速率限制。

您可以使用 Rest Api 获取流程模板中的所有字段:https://docs.microsoft.com/en-us/rest/api/azure/devops/processes/fields/list?view=azure-devops-rest-7.1

Powershell 示例:

$user = ""
$token = "<pat>" #https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$orgUrl = "https://dev.azure.com/<org>"
$procId = "<proc-guid>"
$wiRefName = "<wi type name>"

$restApiGetFields = "$orgUrl/_apis/work/processes/$procId/workItemTypes/$wiRefName/fields?api-version=7.1-preview.2"

function InvokeGetRequest ($GetUrl)
{   
    return Invoke-RestMethod -Uri $GetUrl -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
}

$fields = InvokeGetRequest $restApiGetFields

foreach ($wifield in $fields.value)
{
    Write-Host "Name:" $wifield.name "; RefName" $wifield.referenceName
}

你可以通过rest获得进程公会API: https://dev.azure.com//_apis/work/processes?api-version=7.1-preview.2

您可以在查看过程模板时从 URL 获得的工作项类型名称:

更新:

要获取每个字段的信息,您需要使用 FIELD GET rest API 和 $expand=all 选项。

示例:

如果您有 Visual Studio,您可以 运行 开发者命令提示符并使用 witadmin 命令行。

witadmin listfields /collection:https://dev.azure.com/<org>

Witadmin 语法:https://docs.microsoft.com/en-us/azure/devops/reference/witadmin/manage-work-item-fields?view=azure-devops#syntax