首页 文章

如何调用VSTS REST API以获取Web扩展中的发布定义工件列表?

提问于
浏览
0

我正在为VSTS实现特定版本管理的Web扩展 . 从该扩展我需要为特定版本定义启动新版本 . 创建发布的先决条件是使用过的工件及其正确版本的具体集合 . 这就是我的痛苦 .

有一个RESP API调用(未记录),它提供了每个工件的一组工件的工件列表,以及新版本要使用的预先选择的默认工件版本 . 当您打开用于创建新版本的对话框(或侧面板)时,VSTS本身会调用此类API . 它也在VSTS Release API( ReleaseManagement/Core/RestClient )中定义,函数名称为 getArtifactVersions .

底层请求看起来像 https://.vsrm.visualstudio.com//_apis/Release/artifacts/versions?releaseDefinitionId= .

当我直接在浏览器中运行请求时,我'm getting the correct answer (list of artifact and their available versions). But when I run it from the web extension, I'得到401错误: TF400813: The user '7a6b0fe0-56fd-61f5-9a78-2e170802ac50' is not authorized to access this resource.

我很确定问题位于vss-extension.json清单文件中设置的作用域中的某个位置 . 我已经在documentation中定义了所有可能的范围,但仍然没有成功 . 错误消息中的用户身份是我的身份,我对我们的集合拥有管理员权限 . 当我亲自运行请求(使用个人访问令牌或仅登录浏览器)时,结果可以正确提供 . 但是,使用生成的 Bearer 令牌的同一用户则是未经授权的 . 所以从这个行为我的猜测即将到来 . 清单范围中缺少某些内容 .

U放置文档中的所有范围(每个范围组中最高的范围)仍然没有成功 . 以下是它们的列表:

"vso.agentpools",
"vso.build_execute",
"vso.release_manage",
"vso.code_manage",
"vso.packaging_manage",
"vso.work_write",
"vso.agentpools_manage",
"vso.chat_manage",
"vso.dashboards_manage",
"vso.entitlements",
"vso.extension_manage",
"vso.extension.data_write",
"vso.gallery_manage",
"vso.identity",
"vso.notification_manage",
"vso.profile_write",
"vso.project_manage",
"vso.symbols_manage",
"vso.test_write"

任何想法,我缺少哪个范围?

1 回答

相关问题