Как назначить дочерний элемент (ы) для элемента журнала незавершенного производства в шаблоне TFS - PullRequest
0 голосов
/ 15 октября 2018

У нас одни и те же задачи в некоторых элементах журнала невыполненных работ (pbi), и каждый раз, когда нам приходится создавать pbi, задачи и одни и те же вещи, только есть небольшие различия.Итак, мы хотим создать шаблон pbi и задачи, и мы сделали, но мы не могли назначить задачи для pbi.когда мы проверили поля, там нет «родительского идентификатора» или чего-то в этом роде.

как это сделать?Я также могу согласиться с тем, что мы можем написать сценарий powershell.

Версия - версия 16.131.27701.1

1 Ответ

0 голосов
/ 16 октября 2018

Мы не можем добавить отношения в шаблон рабочего элемента TFS, мы можем только установить значение доступных полей для определенного типа рабочего элемента в шаблоне рабочего элемента.См. Использование шаблонов для добавления и обновления рабочих элементов для получения подробной информации.

Поэтому мы не можем назначить дочерний элемент (-ы) для PBI в шаблоне рабочего элемента TFS.Однако мы можем назначить дочерний элемент (ы) с помощью REST API ( Добавить ссылку ).

Например:

PATCH http://server:8080/tfs/DefaultCollection/_apis/wit/workitems/111?api-version=4.0

Content-Type: application/json-patch+json

[
  {
    "op": "test",
    "path": "/rev",
    "value": 8
  },
  {
    "op": "add",
    "path": "/relations/-",
    "value": {
      "rel": "System.LinkTypes.Hierarchy-Forward",
      "url": "http://server:8080/tfs/DefaultCollection/{ProjectName or ID}/_apis/wit/workItems/129",
      "attributes": {
        "comment": "Add child link to PBI"
      }
    }
  }
]

Вы можете использовать приведенный ниже сценарий PowerShell для назначениянесколько дочерних рабочих элементов для определенного родительского PBI:

Param(
   [string]$baseurl = "http://server:8080/tfs/DefaultCollection",  
   [string]$projectName = "0511ScrumTFVC",
   [string]$PBI = "111",
   [string]$user = "Domain\user",
   [string]$token = "Password"
)

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

$uri = "$baseurl/_apis/wit/workitems/$($PBI)?api-version=4.0"

#For non-continuous child work item IDs
#$childs = (130,134,136)

#For Continuous child work item IDs
$childs = (130..134) #This will link child work item 130,131,132,134 to PBI 111

foreach ($child in $childs)
{

function CreateJsonBody
{
    $value = @"
[
  {
    "op": "test",
    "path": "/rev",
    "value": 8
  },
  {
    "op": "add",
    "path": "/relations/-",
    "value": {
      "rel": "System.LinkTypes.Hierarchy-Forward",
      "url": "$baseurl/$projectName/_apis/wit/workItems/$child",
      "attributes": {
        "comment": "Add child work itme $child to PBI $PBI"
      }
    }
  }
]

"@

 return $value
}

$json = CreateJsonBody
$response = Invoke-RestMethod -Uri $uri -Method PATCH -Body $json -ContentType "application/json-patch+json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...