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

how to get current team id in the newer azure-devops-extension-sdk package

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

但是更新的SDK已经没有这样的方法了。那么是否还有可能弄清楚我当前选择的团队是什么?

在新的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();

如果您的扩展程序需要为用户提供 select 团队的方式,您可以使用 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

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

初始化后,如果我执行以下操作 config.team 团队 ID 和团队名称均可用。

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