如何在PowerShell中使用RestApi从AzureDevOps获取工作项

px9o7tmv  于 2023-04-30  发布在  Shell
关注(0)|答案(1)|浏览(120)
Param(
      [string]$collectionurl = "https://dev.azure.com",
      [string]$project = "projectname",
      [string]$token = "PAT"
       )

        # Base64-encodes the Personal Access Token (PAT) appropriately
         $base64AuthInfo = 
         [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}" -f 
         $token)))

         $baseUrl = 
         "$collectionurl/$project/_apis/wit/reporting/workitemrevisions? 
         includeLatestOnly=true&api-version=5.0-preview.2"         
           $response = (Invoke-RestMethod -Uri $baseUrl -Method Get - 
           UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f 
           $base64AuthInfo)}).values
           $wits = $response | where({$_.fields.'System.WorkItemType' -eq 
           'Task'}) # Only retrieve Tasks

           $witrevisions = @()

           foreach($wit in $wits){

           $customObject = new-object PSObject -property @{
           "WitID" = $wit.fields.'System.Id'   
           "rev" = $wit.fields.'System.Rev'
           "Title" = $wit.fields.'System.Title'
           "AssignedTo" = $wit.fields.'System.AssignedTo'
           "ChangedDate" = $wit.fields.'System.ChangedDate'
           "ChangedBy" = $wit.fields.'System.ChangedBy'
           "WorkItemType" = $wit.fields.'System.WorkItemType'
             } 

           $witrevisions += $customObject      
             }

           $witrevisions | Select-Object `
                WitID,
                rev,
                Title, 
                AssignedTo,
                ChangedDate, 
                ChangedBy,
                WorkItemType #|export-csv -Path E:\ashwin\devdata.csv - 
                 NoTypeInformation

                 Write-Output $witrevisions

我想显示我的项目中要使用powershell显示的工作项,并使用我的PAT使用以下Rest API。
https://dev.azure.com/ {organization}/{project}/_apis/wit/workitems/{id}?api-version=5。1

qv7cva1a

qv7cva1a1#

如何在PowerShell中使用RestApi从AzureDevOps获取工作项
结果将显示在输出中,您会发现如下所示:

如果您没有找到上面的输出,请确保您有任务类型的workitem,因为您已经在powershell脚本中设置了条件'System.WorkItemType' -eq 'Task'
另一方面,您可以将工作项列表导出到*.csv文件,这部分代码在powershell中注解:

WorkItemType #| export-csv -Path G:\temp\WIT.csv -NoTypeInformation

如果你想创建一个*.csv文件,你需要删除该行中的#,它应该是:

WorkItemType | export-csv -Path G:\temp\WIT.csv -NoTypeInformation

现在,我们可以在本地文件夹中获取该文件:

**注意:**路径为G:\temp是本地路径,您应该使用私有代理,如果您使用的是托管代理,您应该从托管代理复制该文件,并发布到管道工件。

希望这能帮上忙。

相关问题