0

我们正在自动创建 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)
4

3 回答 3

0

基本上,我们正在寻找充当“使用团队名称创建区域路径”的东西。所附图片中的复选框。

如果我理解你,你正在尝试创建一个新的团队项目,其中有一个默认区域路径。(当然你也希望他们的名字应该一样)

对于 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 将自动定义与团队项目同名的默认区域路径:

在此处输入图像描述

于 2020-04-13T10:44:29.653 回答
0

向团队添加迭代是通过/_apis/work/teamsettings/iterationsAPI 完成的。

要求:

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
    }
  ]
}

也可以看看:

于 2020-04-10T13:20:11.733 回答
0

所以这就是我结束的地方:5个步骤:

  1. 创建团队:POST https://dev-tfs.../{organization}/_apis/projects/{project}/teams?api-version=5.1 正文:{"name":"BoardByPostmanTest_3"}
  2. 创建匹配团队的区域路径:POST https://dev-tfs.../{organization}/{project}/_apis/wit/classificationnodes/Areas?api-version=5.1 正文:{"name":"BoardByPostmanTest_3" }
  3. 使用区域路径更新团队:PATCH https://dev-tfs.z../{organization}/{project}/BoardByPostmanTest_3/_apis/work/teamsettings/teamfieldvalues?api-version=5.1 正文:{“defaultValue”:“ Agile\BoardByPostmanTest_3", "values": [ { "value": "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": "whatever that Iteration数字来自步骤 4 中的 GET" }

感谢 jessehouwing 提供了我错过的第 3 步。

于 2021-02-15T21:14:08.090 回答