В TFS (или ADO) есть вызов API для привязки команды к пути к области?

Мы автоматизировали создание нашей команды/доски TFS и обнаружили, что есть API для создания команды и API для создания пути к области, но не один, чтобы связать их. По сути, мы ищем что-то, что действует как флажок «Создать путь к области с именем команды» на прикрепленном изображении.Снимок экрана Вот код сообщения нашей команды:

$azdoURI = https://prd-ourCompanyName/tfs/ourOrg/_apis/projects/ourProject/teams?api-version=5.0"
$requestBody = @{ name = "$boardName" }
$jsonRequestBody = $requestBody | ConvertTo-Json -Compress

$response = (Invoke-WebRequest -Method Post -Uri $azdoURI -Body $jsonRequestBody -Content 'application/json' -Credential $credential -UseBasicParsing)

person pharmer40    schedule 08.04.2020    source источник
comment
Означает ли команда командный проект? Какой отдых API вы используете?   -  person Pod Mo    schedule 09.04.2020
comment
Да - Команда как в команде в рамках командного проекта. У нас есть успешная функция, которую я только что добавил в сообщение выше, которая добавляет команду. Из документов Microsoft POST ниже должен добавить путь к области. Я просто не нашел способа связать их вместе. POST dev.azure.com{organization}/{project}/_apis/wit/classificationnodes/{structureGroup} /{путь}?api-версия=5.1   -  person pharmer40    schedule 10.04.2020
comment
Старые примеры API можно найти здесь: stackoverflow.com/a/12850331/736079.   -  person jessehouwing    schedule 10.04.2020
comment
Привет, pharmer40, есть какие-нибудь обновления по этой проблеме?   -  person LoLance    schedule 23.04.2020


Ответы (3)


Добавление итерации в команду осуществляется через /_apis/work/teamsettings/iterations API.

Запрос:

POST https://dev.azure.com/fabrikam/Fabrikam-Fiber/_apis/work/teamsettings/iterations?api-version=5.1
"{\"id\":\"a589a806-bf11-4d4f-a031-c19813331553\"}"

Ответ:

{
  "id": "a589a806-bf11-4d4f-a031-c19813331553",
  "name": "Sprint 2",
  "path": "Fabrikam-Fiber\\Release 1\\Sprint 2",
  "attributes": {
    "startDate": null,
    "finishDate": null
  }
}

Чтобы установить пути к областям, используйте /_apis/work/teamsettings/teamfieldvalues:

Запрос:

PATCH https://dev.azure.com/fabrikam/Fabrikam-Fiber/_apis/work/teamsettings/teamfieldvalues?api-version=5.1
{
  "defaultValue": "Fabrikam-Fiber\\Auto",
  "values": [
    {
      "value": "Fabrikam-Fiber\\Auto",
      "includeChildren": true
    },
    {
      "value": "Fabrikam-Fiber\\Fiber",
      "includeChildren": false
    },
    {
      "value": "Fabrikam-Fiber\\Optics",
      "includeChildren": false
    }
  ]
}

Ответ:

{
  "field": {
    "referenceName": "System.AreaPath",
    "url": "https://dev.azure.com/fabrikam/_apis/wit/fields/System.AreaPath"
  },
  "defaultValue": "Fabrikam-Fiber\\Auto",
  "values": [
    {
      "value": "Fabrikam-Fiber\\Auto",
      "includeChildren": true
    },
    {
      "value": "Fabrikam-Fiber\\Fiber",
      "includeChildren": false
    },
    {
      "value": "Fabrikam-Fiber\\Optics",
      "includeChildren": false
    }
  ]
}

Смотрите также:

person jessehouwing    schedule 10.04.2020
comment
Насколько вам известно, есть ли способ сделать это с помощью Client SDK? Вот проблема, которую я пытаюсь решить. - person InteXX; 28.12.2020

По сути, мы ищем что-то, что действует как флажок «Создать путь к области с именем команды» на прикрепленном изображении.

Насколько я вас понимаю, вы пытаетесь создать новый командный проект, в котором есть один путь к области по умолчанию. (Конечно, вы также хотите, чтобы их имена были одинаковыми)

Для TFS2018U2 попробуйте:

POST https://{instance}/{collection}/_apis/projects?api-version=4.1

Для Azure Devops Server 2019 попробуйте:

POST https://{instance}/{collection}/_apis/projects?api-version=5.0

Вы можете найти более подробную информацию в моем другом сообщении здесь. После моей проверки этот API автоматически определит путь к области по умолчанию с тем же именем, что и проект Team:

введите здесь описание изображения

person LoLance    schedule 13.04.2020
comment
Извините за задержку - наша история на некоторое время выпала. Это похоже на то, что мне было нужно. Собираюсь попробовать в ближайшее время. - person pharmer40; 12.08.2020
comment
Насколько вам известно, есть ли способ сделать это с помощью Client SDK? Вот проблема, которую я пытаюсь решить. - person InteXX; 28.12.2020

Итак, к чему я пришел: 5 шагов:

  1. Создайте команду: POST https://dev-tfs.../{organization}/_apis/projects/{project}/teams?api-version=5.1 Body: {name:BoardByPostmanTest_3}
  2. Создать путь к области для соответствия команде: POST https://dev-tfs.../{organization}/{project}/_apis/wit/classificationnodes/Areas?api-version=5.1 Body: {name:BoardByPostmanTest_3}
  3. Обновить команду с путем к области: PATCH https://dev-tfs.z../{organization}/{project}/BoardByPostmanTest_3/_apis/work/teamsettings/teamfieldvalues?api-version=5.1 Body: { defaultValue: Agile\BoardByPostmanTest_3 , значения: [ { значение: Agile\BoardByPostmanTest_3, includeChildren: true } ] }
  4. Найдите итерацию для проекта: GET https://dev-tfs.../{organization}/{project}/_apis/wit/classificationnodes/Iterations?api-version=5.1
  5. Добавьте эту итерацию в команду: PATCH https://dev-tfs.../{organization}/{project}/BoardByPostmanTest_3/_apis/work/teamsettings?api-version=5.1 Body: { backlogIteration: независимо от того, откуда этот номер итерации ПОЛУЧИТЬ на шаге 4 }

Спасибо jessehouwing за шаг 3, который я пропустил.

person pharmer40    schedule 15.02.2021