Получить общую статистику поля рабочего элемента по каждому пользователю - PullRequest
1 голос
/ 09 мая 2019

Конечная цель - По сути, я пытаюсь сделать с помощью DevOps Azure получение всех завершенных сюжетных очков (это поле для всех рабочих элементов) каждым разработчиком в команде, а затем взять этоданных и сравнивайте их с отслеживаемым временем для каждого рабочего элемента с помощью API-интерфейса toggl.

Проблема . Мне кажется, я не могу найти ничего, что позволило бы мне сделать это через REST API Azure DevOps.На самом деле я не могу найти ничего, что позволило бы мне получить все рабочие элементы на основе критериев, например, от назначенного человека, где я мог бы перенести это до конца.Я даже взял бы все рабочие элементы, где мне тогда пришлось бы выполнять всю фильтрацию и группировку.

Я пытаюсь сделать это с узлом через https://github.com/microsoft/azure-devops-node-api, но я радпри необходимости сделайте это без клиентской библиотеки.

Любая помощь здесь будет с благодарностью!

Я пытался использовать REST API Azure DevOps, чтобы получить все рабочие элементы, но не вижуспособ сделать это.

1 Ответ

0 голосов
/ 09 мая 2019

Вы можете использовать Azure DevOps Rest API для получения рабочих элементов из запроса, API: Wiql - Запрос по идентификатору :

GET https://dev.azure.com/{organization}/{project}/_apis/wit/wiql/{id}?api-version=5.0

Для этого вам нужен идентификатор запроса, поэтому создайте запрос, который возвращает элементы с назначенными пользователю, сохраните запрос, и теперь вы можете увидеть идентификатор в URL:

enter image description here

Когда у вас есть результаты запроса, вы можете перебирать рабочие элементы и получать детали рабочих элементов (все значения полей) с помощью Рабочие элементы - Получить рабочий элемент Api:

GET https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=5.0

Это Rest API, так что вы можете делать его на том языке, на котором хотите (Java, C #, Node.js, PowerShell и т. Д.).

Небольшой пример с PowerShell:

$user = ""
$token = "YOUR-PAT-HERE"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$url = "https://dev.azure.com/{organization}/{project}/_apis/wit/wiql/{queryId}?api-version=5.0"
$query = Invoke-RestMethod -Uri $url -Method Get -ContentType application/json -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$query.workItems.ForEach({

  $wiUrl = "https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/$($_.id)?api-version=5.0"
  $workItem = Invoke-RestMethod -Uri $wiUrl -Method Get -ContentType application/json -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

})
...