我们可以将 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>
我们在 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/
您可以在查看过程模板时从 URL 获得的工作项类型名称:
更新:
要获取每个字段的信息,您需要使用 FIELD GET rest API 和 $expand=all
选项。
示例:
如果您有 Visual Studio,您可以 运行 开发者命令提示符并使用 witadmin
命令行。
witadmin listfields /collection:https://dev.azure.com/<org>