I need to display the the "Area path" in a VSTS Build task input PickList, so that I can retrieve the user selected "Area path" value from my build task and set it in a work item generated by the build task. Is this possible with existing VSTS API? If so how to do this?
I think this is done in Copy Files task in Utilty section.
Thanks in advance.
Yes, it is. You can add following section in task.josn file to achieve this:
"inputs": [
{
"name": "rootArea",
"type": "pickList",
"label": "rootArea",
"defaultValue": "",
"required": false,
"helpMarkDown": "Select the root area.",
"properties": {
"DisableManageLink": "True"
}
},
{
"name": "childArea",
"type": "pickList",
"label": "childArea",
"defaultValue": "",
"required": false,
"helpMarkDown": "Select the child area.",
"properties": {
"DisableManageLink": "True"
}
}
],
"sourceDefinitions": [
{
"target": "rootArea",
"endpoint": "/$(system.teamProject)/_apis/wit/classificationNodes/areas?$depth=2&api-version=1.0",
"selector": "jsonpath:$.name",
"keySelector": "jsonpath:$.name",
"authKey": "tfs:teamfoundation"
},
{
"target": "childArea",
"endpoint": "/$(system.teamProject)/_apis/wit/classificationNodes/areas?$depth=2&api-version=1.0",
"selector": "jsonpath:$.children[*].name",
"keySelector": "jsonpath:$.children[*].name",
"authKey": "tfs:teamfoundation"
}
],
And you will get the build task like this:
However, due to data structure in the response of classification nodes api, you have to add more inputs when there are more level of child areas.