Как создавать рабочие элементы с помощью клиента Visual Studio Team Services для Node.js (vso-node-api)?

Мне нужно создать рабочие элементы VSTS с помощью клиента Visual Studio Team Services для Node.js (vso-node-api). Предоставьте какие-либо примеры по этому вопросу?


person Bandara    schedule 22.09.2016    source источник


Ответы (2)


Я создал простой пример кода, чтобы получить и создать с ним рабочий элемент для справки, подробности см. В следующем разделе:

/// <reference path="typings/index.d.ts" />

import * as vm from 'vso-node-api/WebApi';
import * as wa from 'vso-node-api/WorkItemTrackingApi';
import * as wi from 'vso-node-api/interfaces/WorkItemTrackingInterfaces';
import * as vss from 'vso-node-api/interfaces/Common/VSSInterfaces';

var collectionUrl = "https://xxxxxx.visualstudio.com";

let token: string = "Yourpersonalaccesstoken";

let creds = vm.getPersonalAccessTokenHandler(token);

var connection = new vm.WebApi(collectionUrl, creds); 

let vstsWI: wa.IWorkItemTrackingApi = connection.getWorkItemTrackingApi();

async function getWI() {
    let wiid: number = 1;
    let workitem: wi.WorkItem = await vstsWI.getWorkItem(wiid);

    console.log(workitem.url);
}

getWI();

async function createWI() {
    let wijson: vss.JsonPatchDocument = [{ "op": "add", "path": "/fields/System.Title", "value": "Task created from Node JS" }];
    let project: string = "Project";
    let witype: string = "Task";
    let cWI: wi.WorkItem = await vstsWI.createWorkItem(null, wijson, project, witype);
    console.log(cWI.id);
}

createWI();
person Eddie Chen - MSFT    schedule 22.09.2016
comment
Большое спасибо за ответ, Эдди. В моем проекте используется версия ES5, поэтому я получаю сообщение об ошибке, когда добавляю пакет узла vso-node-api и собираю его в ES5. Кажется, «Promise» недоступен в ES5. Знаете ли вы? любой обходной путь для этого? - person Bandara; 22.09.2016
comment
@BandR Нет, я не знаю обходного пути для этого. Извиняюсь. - person Eddie Chen - MSFT; 23.09.2016
comment
Я получаю несанкционированную ошибку 401 даже при вводе действительных учетных данных. Есть идеи, почему? Ошибка: Неудачный запрос: неавторизованный (401) - \n at processResponse (c:\vso-test\node_modules\vso-node-api\RestClient.js:59:18)\n at c:\vso-test\node_modules\ vso-node-api\RestClient.js:147:13\n в HttpClient.request.callback (c:\vso-test\node_modules\vso-node-a... - person Bandara; 23.09.2016
comment
@BandR Какие учетные данные вы использовали? - person Eddie Chen - MSFT; 24.09.2016
comment
Я использовал токен снизу, это сработало 'let auth = tl.getEndpointAuthorization(SYSTEMVSSCONNECTION, false);' 'var token = auth.parameters[AccessToken];' - person Bandara; 26.09.2016
comment
@BandR Я использую токен личного доступа. Я попробую завтра с вашим кодом и сообщу вам результат. - person Eddie Chen - MSFT; 26.09.2016
comment
@BandR Я не могу воспроизвести вашу проблему, токен, созданный с помощью вашего кода, работает на моей стороне. - person Eddie Chen - MSFT; 27.09.2016
comment
Привет, Эдди, я не могу создавать рабочие элементы в среде TFS 2015.2 с помощью этого кода, я инициировал следующий запрос [Проблема создания рабочего элемента TFS] (stackoverflow.com/ вопросов/40147345/ ) Вы можете помочь мне с этим? - person Bandara; 21.10.2016

Используйте токен, полученный с помощью vsts-task-lib

import tl = require('vsts-task-lib/task');
let auth = tl.getEndpointAuthorization("SYSTEMVSSCONNECTION", false);
var token = auth.parameters["AccessToken"];
person Bandara    schedule 26.09.2016