无法在Azure DevOps扩展中显示团队项目列表

时间:2018-10-23 06:55:33

标签: azure-devops tfs2015 azure-devops-extensions

我正在尝试使用Azure DevOps(TFS)扩展中的选择列表显示项目列表。以下是task.json中的代码段:

输入:

{
      "name": "project",
      "type": "pickList",
      "label": "Project",
      "defaultValue": "",
      "required": false,
      "helpMarkDown": "Select the root area.",
      "properties": {
        "DisableManageLink": "True"
      }
    }

来源定义:

{
      "target": "project",
      "endpoint": "http://localhost:8080/tfs/DefaultCollection/_apis/projects?api-version=1.0",
      "selector": "jsonpath:$.name",
      "keySelector": "jsonpath:$.name",
      "authKey": "tfs:teamfoundation"
    }

我的本​​地环境具有TFS 2015,该URL在浏览器中工作正常。 但是,扩展程序中的选择列表并没有填写。

你知道这里出了什么问题吗?

顺便说一句,当我查看浏览器控制台时,可以看到“ 400(错误请求)”。

谢谢。

1 个答案:

答案 0 :(得分:0)

这有效! (甚至令我惊讶):

"inputs": [
        {
            "name": "sourceProject",
            "type": "pickList",
            "label": "Source project",
            "defaultValue": "",
            "required": true,
            "helpMarkDown": "Select the TFS Project.",
            "properties": {
                "EditableOptions": "True"
            }
        }
    ],
    "dataSourceBindings": [
        {
            "target": "sourceProject",
            "endpointId": "tfs:teamfoundation",
            "endpointURL": "{{endpoint.url}}/_apis/projects?api-version=1.0",
            "resultSelector": "jsonpath:$.value[*]",
            "resultTemplate": "{ \"Value\" : \"{{{id}}}\", \"DisplayValue\" : \"{{{name}}}\" }"
        }
    ]

enter image description here 注意,“ runSelector”和“ resultTemplate”已正确定义。真正的关键是“ resultSelector”和“ endpointId”中正确的JSON路径查询,该查询使用了标签错误的“ tfs:teamfoundation”。 resultTemplate用于格式化下拉列表。

我创建了一个带有工作扩展名的GitHub存储库,可以在自己的TFS集合上对其进行测试。 https://github.com/Antebios/vsts-projectlist-task

编辑:这适用于Azure Devops,但会为我正在使用的TFS 2015引发错误。看来"endpointId": "tfs:teamfoundation"对于TFS可能无效。