Как получить все рабочие элементы из REST API Visual Studio Team Services - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужно ежедневно получать 5000> рабочих элементов, и мне нужно подготовить некоторый отчет, но REST API поддерживает только 200 слотов за раз, и в этом случае мне придется делать много вызовов API. Есть ли другой способ получить все рабочие элементы одновременно ???

1 Ответ

0 голосов
/ 04 сентября 2018

Какую версию TFS вы используете? Если вы используете локальную TFS 2018 или VSTS, то вы можете использовать API REST - Отчетность по ревизиям рабочего элемента - Читать ревизии отчета Получите или Отчетность по ревизиям рабочего элемента - Читать отчеты по ревизиям Пост чтобы получить все рабочие элементы:

GET https://{accountName}.visualstudio.com/{project}/_apis/wit/reporting/workitemrevisions?includeLatestOnly=true&api-version=4.1

При необходимости вы можете добавить дополнительные параметры:

GET https://{accountName}.visualstudio.com/{project}/_apis/wit/reporting/workitemrevisions?fields={fields}&types={types}&continuationToken={continuationToken}&startDateTime={startDateTime}&includeIdentityRef={includeIdentityRef}&includeDeleted={includeDeleted}&includeTagRef={includeTagRef}&includeLatestOnly={includeLatestOnly}&$expand={$expand}&includeDiscussionChangesOnly={includeDiscussionChangesOnly}&$maxPageSize={$maxPageSize}&api-version=4.1

Например, мы можем использовать приведенный ниже скрипт PowerShell для извлечения всех рабочих элементов из определенного проекта (Вы также можете экспортировать результат в файл *.csv, а затем открыть в Excel):

Param(
   [string]$baseurl = "http://server:8080/tfs/DefaultCollection", 
   [string]$projectName = "0511ScrumTFVC",
   [string]$user = "domain\user",
   [string]$token = "password/PAT"
)

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

$uri = "$baseurl/$($projectName)/_apis/wit/reporting/workitemrevisions?includeLatestOnly=true"
Write-Host $uri
$result = Invoke-RestMethod -Uri $uri -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
Clear-Host
Write-Host "Count of Work items"$result.values.count 
$wits = @()
foreach ($wit in $result.values)
{

$customObject = new-object PSObject -property @{
          "WitID" = $wit.fields.'System.id'
          "rev" = $wit.Rev
          "Title" = $wit.fields.'System.Title'
        } 

    $wits += $customObject
}

$wits | Select `
                WitID,
                rev, 
                Title #|export-csv -Path D:\temp\WITs.csv -NoTypeInformation

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...