【发布时间】:2020-10-21 21:36:29
【问题描述】:
在我在网上找到的较旧的构建 devops 扩展示例中,可以使用 VSS.getWebContext(); 在创建将选项卡添加到待办事项区域的扩展时获取有关当前项目和所选团队的一些信息。
但是,较新的 SDK 不再有这种方法。那么是否还有可能弄清楚我当前选择的团队是什么?
【问题讨论】:
标签: azure-devops azure-devops-rest-api azure-devops-extensions
在我在网上找到的较旧的构建 devops 扩展示例中,可以使用 VSS.getWebContext(); 在创建将选项卡添加到待办事项区域的扩展时获取有关当前项目和所选团队的一些信息。
但是,较新的 SDK 不再有这种方法。那么是否还有可能弄清楚我当前选择的团队是什么?
【问题讨论】:
标签: azure-devops azure-devops-rest-api azure-devops-extensions
在新的 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。
【讨论】:
在我需要获取团队 ID 的上下文中,它实际上可以从新 SDK 中获取。
如果我执行以下 config.team 在初始化之后,团队 ID 和团队名称都可用。
const config = SDK.getConfiguration();
const teamname = config.team.name;
【讨论】: