Azure DevOps queryByWiql не запрашивает правильный проект - PullRequest
1 голос
/ 23 апреля 2019

Хотелось бы узнать, есть ли способ, чтобы виджет панели мониторинга DevOps Azure мог узнать, к какому проекту он принадлежит или находится в нем. Например, у меня есть 2 проекта. Виджет должен иметь возможность различать два, извлекать разные данные, но в конечном итоге делать то же самое.

Я посмотрел на ссылку на API

Вот что я попробовал:

var projectId = VSS.getWebContext().project.id;
var query = {
    query: "SELECT [System.Id] FROM WorkItem WHERE [System.WorkItemType] = 'Epic' AND [System.State] NOT IN ('Closed','Completed','Resolved','Removed', 'Done')"
};

witClient.queryByWiql(query, projectId).then(
    function (epics) {
      epics.workItems.forEach(epic => {
          ...

Тем не менее, я получаю обратно Epics от проектов, под которыми нет панели управления. У нашей организации есть несколько проектов / продуктов, которые имеют собственные WorkItems.

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

Я хочу создать виджет, который определяет, к какому проекту он относится, и извлекать данные только для этого проекта.

1 Ответ

0 голосов
/ 07 мая 2019

Если вы хотите получить данные определенного проекта, убедитесь, что вы также ссылаетесь на них в запросе WIQL.Вы можете сделать это, добавив [System.TeamProject] = @project к вашему запросу.

var projectId = VSS.getWebContext().project.id;
var query = "SELECT [System.Id] FROM WorkItem WHERE [System.WorkItemType] = 'Epic' AND [System.State] NOT IN ('Closed','Completed','Resolved','Removed', 'Done') AND [System.TeamProject] = @project";

witClient.queryByWiql({ query: query }, projectId).then(function (epics) {
    // do your stuff here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...