gpt4 book ai didi

Azure DevOps 扩展 : Passing query parameters to custom build report view

转载 作者:行者123 更新时间:2023-12-02 08:27:24 26 4
gpt4 key购买 nike

我正在为 Azure DevOps 构建自定义扩展,特别是 build tab extension 。我的 manifest.json 文件中有一个相当基本的定义。

{
"id": "my-report-hub",
"type": "ms.vss-build-web.build-results-tab",
"targets": [
"ms.vss-build-web.build-results-view"
],
"properties": {
"name": "My Build Report",
"uri": "build/myReport.html"
}
}

报告的 HTML 是动态的,并且生成的变量可帮助定义页面内容。本质上,报告页面显示构建错误列表,如果您单击该错误,我会动态显示该错误的更详细描述。

我想做的是深层链接这些生成的页面之一,这意味着调用我的构建 View 的 URL,但以某种方式传递它的参数。 URL 通常如下所示:

https://dev.azure.com/{org}/{project}/_build/results?buildId=302&view=thrillo.my-extension-debug.my-report-hub

但是这当然会打开主页。我想传递 TypeScript/JavaScript 可以读取的参数,然后弹出与错误号关联的生成页面。例如我可以添加这样的参数:

https://dev.azure.com/{org}/{project}/_build/results?buildId=302&view=thrillo.my-extension-debug.my-report-hub&errno=11

但是当我的实际 Assets 的 HTML/JS 被调用时,它位于 iframe 内并且不会获取参数(事实上,它会获取到 Assets 页面本身的链接,或多或少没有查询参数)。当然,我无法获取“顶级文档”来获取 View 参数,因为它会跨域跳转,而且我没有访问权限(安全!)

所以问题是:如果确实可能的话,如何通过链接/url 将参数传递到我的构建报告 View ?

感谢您的帮助!

最佳答案

我也有同样的要求。这有点令人困惑,因为文档的一部分指向新的 SDK,一些指向旧的;但是,使用这个: https://learn.microsoft.com/en-us/javascript/api/azure-devops-extension-api/ihostnavigationservice我能够到达:

    import * as SDK from "azure-devops-extension-sdk";
import { CommonServiceIds, IHostNavigationService} from "azure-devops-extension-api";

public componentDidMount() {
SDK.init();
const hostNavigationService = await SDK.getService<IHostNavigationService>(CommonServiceIds.HostNavigationService);
let pageNavigationParams = await hostNavigationService.getQueryParams();
console.log(pageNavigationParams)
}

然后,将 &errno=11 添加到 URL 应显示在 pageNavigationParams 中。

关于Azure DevOps 扩展 : Passing query parameters to custom build report view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63943093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com