Построение очереди API VSTS NodeJS - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу поставить в очередь сборку через NodeJS VSTS API (azure-devops-node-api)

Поэтому я использую getDefinition, чтобы получить определение сборки, затем queueBuild с возвращенным результатом:

connection.getBuildApi().then((vstsBuild) => {
    vstsBuild.getDefinition(buildPublishToNexus, project).then((buildDefinition) => {
        vstsBuild.queueBuild(buildDefinition, project).then((defs) => {
            console.info('build', defs);
        }).catch(err => console.error('catch 1', err));
    }).catch(err => console.error('catch 2', err));
});

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

{ '$id': '1',
     innerException: null,
     message: 'Value cannot be null.\r\nParameter name: build.Definition',
     typeName: 'System.ArgumentNullException, mscorlib',
     typeKey: 'ArgumentNullException',
     errorCode: 0,
     eventId: 0 } }

Есть ли у кого-нибудь информация о том, как получить build.Definition? Документация действительно плохая.

1 Ответ

0 голосов
/ 09 ноября 2018

Так что я нашел решение в вопросах vsts github :

Я бы порекомендовал поставить в очередь сборку в пользовательском интерфейсе и наблюдать за проводом с помощью chrome, fiddler, charles. Сравните. Наш веб-интерфейс использует все общедоступные API, поэтому он реализован :). Точнее, чем документы ...

Таким образом, полезная нагрузка будет выглядеть так:

        const vstsdef = {
        'queue': {'id': 1},
        'definition': {'id': 1},
        'project': {'id': '5fe64329-b654-4a20-a73c-375636ef1879'},
        'sourceBranch': 'refs/heads/mybranch',
        'sourceVersion': '',
        'reason': 1,
        'demands': ['option demands'],
        'parameters': '{"key":"value"}'
    };
...