我正在开发Azure DevOps Services和Server的扩展,但是一旦我对目标资源进行了一些导航(例如:提取请求详细信息),我就在努力获取Azure DevOps Server版本的基本URL。 / p>
有没有办法得到它?例如:
Azure DevOps服务
Azure DevOps服务器
答案 0 :(得分:1)
我正在使用以下代码:
document.referrer
作为URL来源。找到项目名称,并在项目名称之前提取URL的一部分。
const url = document.referrer;
// how to detect base Url: get projectName and find 'ProjectName/_'
// http://tfs2017-test:8080/tfs/Org/MyProject/_apps/hub/...
const projectService = await SDK.getService<IProjectPageService>(CommonServiceIds.ProjectPageService);
const project = await projectService.getProject();
if (!project) {
throw new Error("Cannot get project.")
}
const findStr = `${project.name}/_`;
const index = url.indexOf(findStr);
if (index < 0) {
throw new Error(`URL '${url}' does not contain '${findStr}' substring`);
}
// extract from url without '_'
this._baseUrl = url.substring(0, index + findStr.length - 1);