2017-07-07 1 views
0

J'essaie d'accéder à la configuration du point de terminaison du service dans mon code d'extension.Accès aux points de terminaison du service VSTS depuis javascript

L'extension est la suivante:

{ 
    "manifestVersion": 1, 
    "id": "vsts-extensions-myExtensions", 
    "version": "0.5.1", 
    "name": "xxx Projects Time Entry", 
    "description": "Record time spent in xxx Projects", 
    "publisher": "xxx", 
    "targets": [ 
    { 
     "id": "Microsoft.VisualStudio.Services" 
    } 
    ], 
    "icons": { 
    "default": "img/logo.png" 
    }, 
    "contributions": 
    [ 
    { 
     "id": "xxTimeEntry", 
     "type": "ms.vss-dashboards-web.widget", 
... 
    }, 

    { 
     "id": "service-endpoint", 
     "description": "Service Endpoint type for xx connections", 
     "type": "ms.vss-endpoint.service-endpoint-type", 
     "targets": [ "ms.vss-endpoint.endpoint-types" ], 
     "properties": { 
     "name": "xxxyyy", 
     "displayName": "xx server connection", 
     "url": { 
      "displayName": "Server Url", 
      "helpText": "Url for the xxx server to connect to." 
     }, 
     "dataSources": [ 
      { 
      "name": "xxx Projects", 
      "endpointUrl": "{{endpoint.url}}api/timesheetwidgetprojects", 
      "resultSelector": "jsonpath:$[*].nm" 
      } 
     ], 
     "authenticationSchemes": [ 
      { 
      "type": "ms.vss-endpoint.endpoint-auth-scheme-basic", 
      "inputDescriptors": [ 
       { 
       "id": "username", 
       "name": "Username", 
       "description": "Username", 
       "inputMode": "textbox", 
       "validation": { 
        "isRequired": false, 
        "dataType": "string" 
       } 
       }, 
       { 
       "id": "password", 
       "name": "Password", 
       "description": "Password", 
       "inputMode": "passwordbox", 
       "isConfidential": true, 
       "validation": { 
        "isRequired": false, 
        "dataType": "string" 
       } 
       } 
      ] 
      } 
     ] 
     } 
    } 
    ], 
... 

Le code pour accéder au point de terminaison de service est quelque chose comme:

VSS.require(["VSS/Service", "VSS/WebApi/RestClient"], 
    function (VSS_Service, RestClient) { 
     var webContext = VSS.getWebContext(); 
     var client = VSS_Service.getCollectionClient(DistributedTask.TaskAgentRestClient); 
     client.getServiceEndpoints(webContext.project.id).then(
      function (endpoints) { 
       alert('endpoints') 
      } 
     ); 
    } 
); 

mais je ne suis pas en utilisant une tâche et ai juste mon point de terminaison dans la principale vss-extension.json.

Des idées?

Merci Martin

+0

Quelle erreur vois-tu? –

Répondre

1

Basé sur le supported scopes, il n'y a pas le champ d'extrémité de service, donc vous ne pouvez pas le faire.

Je soumets une voix d'utilisateur ici: VSTS extension service endpoint scope, vous pouvez voter et suivre. Pour contourner le problème, vous pouvez appeler l'API REST en utilisant le code JS avec Personal Access Token dans votre extension.

code simple pour appeler API REST:

$.ajax({ 
      url: 'https://fabrikam.visualstudio.com/defaultcollection/_apis/projects?api-version=1.0', 
      dataType: 'json', 
      headers: { 
       'Authorization': 'Basic ' + btoa("" + ":" + myPatToken) 
      } 
     }).done(function(results) { 
      console.log(results.value[0].id + " " + results.value[0].name); 
     });