如何在更新的azure-devops-extension-sdk包中获取当前的团队ID

时间:2020-10-21 21:36:29

标签: azure-devops azure-devops-rest-api azure-devops-extensions

在网上找到的较早的Building devops扩展示例中,在创建将选项卡添加到积压区域的扩展时,可以使用VSS.getWebContext();获取有关当前项目和所选团队的一些信息。

但是,较新的SDK不再提供这种方法。那么仍然有可能弄清楚我目前选择的团队是什么?

2 个答案:

答案 0 :(得分:0)

在新的azure-devops-extension-sdk中,您似乎只能获得与当前页面关联的项目:

import * as SDK from "azure-devops-extension-sdk";
import { CommonServiceIds, IProjectPageService } from "azure-devops-extension-api";
const projectService = await SDK.getService<IProjectPageService>(CommonServiceIds.ProjectPageService);
const project = await projectService.getProject();

如果扩展程序需要为用户提供选择团队的方式,则可以使用Teams REST API获取当前项目的团队列表。这是一个如何从您的扩展程序中调用此API的示例:

VSS.require(["VSS/Service", "TFS/Core/RestClient"],
   function(VSS_Service, Tfs_Core_WebApi) {
      var client = VSS_Service.getCollectionClient(Tfs_Core_WebApi.CoreHttpClient4);
  
      client.getTeams(VSS.getWebContext().project.id).then(
         function(teams) {
            console.log(teams);
         }
      );
});

有关提供团队选择器控件的扩展示例,请参见Team Calendar

答案 1 :(得分:0)

在上下文中,我需要获取团队ID,实际上可以从新的SDK中获取它。

初始化后,如果我执行以下config.team,则同时具有团队ID和团队名称。

const config = SDK.getConfiguration();
const teamname = config.team.name;