【问题标题】:Can we export Azure DevOps work item fileds into Excel我们可以将 Azure DevOps 工作项字段导出到 Excel 中吗
【发布时间】:2023-01-08 19:35:33
【问题描述】:

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

【问题讨论】:

  • 请检查 Shamrai Aleksander 的更新答案和其他人的答案。如果您需要任何帮助,我们愿意帮助您,如果答案对您有帮助或者您找到了正确答案,请评论并标记为正确答案。

标签: azure azure-devops tfs-workitem wiql


【解决方案1】:

您可以使用适用于 Excel 的 Azure DevOps Office® Integration 2019 连接器来批量提取数据。调用 API 有一个限制,我认为它可能是 10,000 个工作项。您可以通过在使用条件运行查询时将查询分开来绕过此速率限制。

【讨论】:

    【解决方案2】:

    如果你有 Visual Studio,你可以运行 Developer Command Prompt 并使用 witadmin 命令行。

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

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

    【讨论】:

      【解决方案3】:

      如果“导出为 CSV/作为邮件发送”符合要求,请使用它。如果没有安装 azure devops office 集成并连接到 excel。 Export Work Items from Azure DevOps Board to Microsoft Excel

      【讨论】:

        【解决方案4】:

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

        电源外壳示例:

        $user = ""
        $token = "<pat>" #https://learn.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/<you_org_name>/_apis/work/processes?api-version=7.1-preview.2

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

        更新:

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

        例子:

        【讨论】:

        • 感谢您回复我的请求。我已经根据您的回复使用 rest API 进行了测试,它工作正常。但是连同所有字段的列表,我们正在寻找一种方法来获取某些字段的选项。因此,例如,国家和日期是我们创建的存在于几个工作项上的多选字段。有没有一种方法可以使用 API 来提取系统中所有字段的列表以及任何可用的关联元数据?
        • @Bala 检查其余 API 中的 allowedValues、defaultValue 属性答案:learn.microsoft.com/en-us/rest/api/azure/devops/processes/…
        • allowedValues 选项未在 rest API 答案中打印。打印了 defaultValue 选项,但我在该选项中只看到“New”、“No”值。我在这里分享字段和字段内值的示例屏幕截图。在下面的屏幕截图中,'Geo' 是字段名称,'Core'、'Global'、'INTL' 是多选值。我们正在寻找在字段中获取这些多选值的方法。 i.stack.imgur.com/LoEpm.png
        • @Bala 是的,你是对的。您必须检查每个字段以获得允许的值。在答案中检查我的更新。
        • 谢谢山莱。我从你的回复中得到了帮助。
        猜你喜欢
        • 2013-11-26
        • 1970-01-01
        • 1970-01-01
        • 2022-11-19
        • 2022-12-21
        • 2020-12-06
        • 1970-01-01
        • 1970-01-01
        • 2019-11-14
        相关资源
        最近更新 更多