Azure devops 如何在自定义扩展中显示来自Azure DevOps工件的html报告?

Azure devops 如何在自定义扩展中显示来自Azure DevOps工件的html报告?,azure-devops,azure-devops-rest-api,azure-devops-extensions,Azure Devops,Azure Devops Rest Api,Azure Devops Extensions,我使用以下语句将一些工件从构建管道存储到工件文件夹: Write-Host "##vso[artifact.upload containerfolder=testresult;artifactname=worksoftresult;]C:\JSONOutput\finalJSON.json" 现在我想从我想要创建的Azure DevOps扩展访问这个特定的json文件。如以下代码所示,为我提供扩展中当前登录的用户: document.getElementById("

我使用以下语句将一些工件从构建管道存储到工件文件夹:

Write-Host "##vso[artifact.upload containerfolder=testresult;artifactname=worksoftresult;]C:\JSONOutput\finalJSON.json"
现在我想从我想要创建的Azure DevOps扩展访问这个特定的json文件。如以下代码所示,为我提供扩展中当前登录的用户:

document.getElementById("name").innerText = VSS.getWebContext().user.name;
是否有方法从VSS.SDK访问当前生成的工件?如果没有,如何访问工件?我尝试过GetAtrifact rest API,但它尝试下载该文件:

https://dev.azure.com/XXXX/XXXXX/_apis/build/builds/1166/artifacts?artifactName=testResult&fileName=finalJSON.json&api-version=5.1&%24format=json
我不想下载json文件,但我想让json在扩展名中显示它。请帮忙

我不想下载json文件,但我想让json显示它 在分机里

正如我所知,我们没有这样的API来直接访问工件中一个文件的内容

而 与
webextensionsdk(VSS.SDK)
一样,它们都不支持直接访问文件的元数据。目前只有git repo中的文件元数据可以通过API直接访问。让我们检查一下差异:

1.获取工件中文件的API:

restapi:
GEThttps://dev.azure.com/{organization}/{project}/_-api/build/builds/{buildId}/artifacts?artifactName={artifactName}&fileId={fileId}&fileName={fileName}&api version=5.1
(您使用的那个)

C#客户端:
(使用
BuildHttpClient
class)

jsweb(VSS.SDK):

2.在git repo中获取文件元数据的API:

restapi:
GEThttps://dev.azure.com/{organization}/{project}/_-api/git/repositories/{repositoryId}/items?path={path}&api version=5.1
如果
includeContentMetadata
设置为True,则支持获取元数据

C#客户机:
或(它们都支持获取单个项目的项目元数据和/或内容,但尚未对其进行测试以检查哪个更好)

jsweb(VSS.SDK):
和。(获取单个项目的项目元数据和/或内容。)

总而言之:您真正想要的是访问元数据,这样您就可以直接访问文件中的内容。但目前,不支持与工件相关的api来完成这项工作。因此,我恐怕答案是否定的,您想要的东西在当前版本的API中不受支持

作为替代解决方案,我建议您可以在我们的用户语音论坛中提交功能请求,以分享您的反馈。如果得到足够的选票,产品团队会考虑你的想法。

我不想下载json文件,但我想让json显示它 在分机里

正如我所知,我们没有这样的API来直接访问工件中一个文件的内容

而 与
webextensionsdk(VSS.SDK)
一样,它们都不支持直接访问文件的元数据。目前只有git repo中的文件元数据可以通过API直接访问。让我们检查一下差异:

1.获取工件中文件的API:

restapi:
GEThttps://dev.azure.com/{organization}/{project}/_-api/build/builds/{buildId}/artifacts?artifactName={artifactName}&fileId={fileId}&fileName={fileName}&api version=5.1
(您使用的那个)

C#客户端:
(使用
BuildHttpClient
class)

jsweb(VSS.SDK):

2.在git repo中获取文件元数据的API:

restapi:
GEThttps://dev.azure.com/{organization}/{project}/_-api/git/repositories/{repositoryId}/items?path={path}&api version=5.1
如果
includeContentMetadata
设置为True,则支持获取元数据

C#客户机:
或(它们都支持获取单个项目的项目元数据和/或内容,但尚未对其进行测试以检查哪个更好)

jsweb(VSS.SDK):
和。(获取单个项目的项目元数据和/或内容。)

总而言之:您真正想要的是访问元数据,这样您就可以直接访问文件中的内容。但目前,不支持与工件相关的api来完成这项工作。因此,我恐怕答案是否定的,您想要的东西在当前版本的API中不受支持


作为替代解决方案,我建议您可以在我们的用户语音论坛中提交功能请求,以分享您的反馈。产品团队会考虑到你的想法,如果它得到足够的票数。

< P>回答我的问题,因为我不能直接在扩展中显示伪像,所以我暂时用下面的代码将它上传到Task.Apple摘要中:

Write-Host "##vso[task.uploadsummary]$(Build.ArtifactStagingDirectory)\output.md"
这并不完全符合我的目的,但我能够在构建摘要中看到一个Extensions选项卡,其中呈现了本应在工件中的文件:

为了回答我的问题,因为我无法在扩展中直接显示工件,所以我(暂时)使用以下代码将其上载到Task.UploadSummary:

Write-Host "##vso[task.uploadsummary]$(Build.ArtifactStagingDirectory)\output.md"
这并不完全符合我的目的,但我能够在构建摘要中看到一个Extensions选项卡,其中呈现了本应在工件中的文件:

也许您可以先下载文件,然后使用代码读取。但是它可能有一些浏览器的限制,请检查。也许您可以先下载文件,然后使用代码读取。但是它可能有一些浏览器的限制,请检查,。太好了!谢谢你在这里分享你的解决方法,你可以,这样它可以帮助其他社区成员谁得到同样的问题,谢谢。太好了!谢谢你在这里分享你的解决方法,你可以,这样它可以帮助其他社区成员谁得到同样的问题,谢谢。