【问题标题】:how to get current team id in the newer azure-devops-extension-sdk package如何在较新的 azure-devops-extension-sdk 包中获取当前团队 ID
【发布时间】:2020-10-21 21:36:29
【问题描述】:

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

但是,较新的 SDK 不再有这种方法。那么是否还有可能弄清楚我当前选择的团队是什么?

【问题讨论】:

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


    【解决方案1】:

    在新的 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

    【讨论】:

    • 这不适用于我的用例。然而,我确实发现在 configuration.host 的上下文中提供了一个团队 ID。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 2020-08-11
      • 2020-06-09
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多