Azure DevOps queryByWiql 不查询正确的项目

Azure DevOps queryByWiql does not query correct project

我想知道 Azure DevOps 仪表板小部件是否有办法知道它属于或驻留在哪个项目。例如,我有 2 个项目。小部件应该能够区分两者,获取不同的数据,但最终做同样的事情。

我看了the API reference

这是我尝试过的:

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。我们的组织有几个 projects/products 有自己的 WorkItems。

我验证了 projectId 变量映射到正确的项目,我只是不知道为什么我的查询 returns Epics 不属于正确的项目...

我想创建一个确定它属于哪个项目的小部件,并仅为该项目获取数据。

当你想得到具体项目的数据时,一定要在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
});