问题标签 [azure-devops-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
62 浏览

azure-devops - VSTS 扩展审核流程

我正在研究使用 VSTS 作为构建系统,显然使用它的优势之一是可以从 Marketplace 获得的各种扩展。

提交扩展时,他们是否经过任何形式的审查或审查程序,以确保没有人做他们不应该做的事情?

0 投票
1 回答
274 浏览

tfs - 从扩展代码中读取 VSTS/TFS 扩展版本

有没有办法从扩展中读取扩展版本号?

我们正在手动将版本添加到vss-extension.jsontask.json。如果有人提供从这些地方检索版本的指南,那将有很大帮助。

1) vss-extension.json 在此处输入图像描述

2) 任务.json

在此处输入图像描述

0 投票
1 回答
408 浏览

javascript - "401 Unauthorized" while using vss-web-extension-sdk for requests

I am in the process of creating a report, generated and organized from various VSTS API calls. I am running into a wall using the vss.sdk to make the requests to the git rest api. The request seemed easy enough, following from examples The Core Client SDK Documentation

The response I get back is "401: error: TF400813: The user '####MyUserID####' is not authorized to access this resource."

My tests were done on my personal VSTS account where I am an Administrator, so it shouldn't be an issue with my permissions.

Any and all thoughts\suggestions\prayers\ideas are appreciated!

0 投票
1 回答
537 浏览

node.js - VSTS 节点 API - 无法使用身份 API

我在使用VSTS Node Api时遇到了一些问题——特别是Identities API

我已经成功地使用 Git API 来执行诸如检索存储库列表之类的操作:

然后,在其他地方,以下内容按预期工作,代表 Git 存储库的对象被记录到控制台:

但是,如果我尝试做类似的事情并使用身份 API 来listGroups

将承诺更改为 getGroups 而不是 getRepos...

...我收到此错误:

我正在我的个人 VSTS 帐户上尝试此操作,所以我应该是所有者/管理员 - 如果我的访问因权限问题而被拒绝,我预计会出现不同的错误。我尝试了不同的值collectionUri,比如包括项目名称(my-account.visualstudio.com/ProjectABC),但这也不起作用。我还尝试了其他身份 API 调用,例如getSelf,结果相同。

0 投票
1 回答
1193 浏览

azure-devops - 内容安全策略阻止从 VSTS 扩展下载生成的 CSV 文件

我正在尝试编写一个生成报告并提供将数据下载为 CSV 的链接的 VSTS 扩展。

我有一个正在保存到 CSV 的字符串:

这在 Chrome 中按预期工作,但在 Firefox 中,由于内容安全策略,该操作被阻止:

内容安全策略:该页面的设置阻止了在 data:attachment/csv,%22Repository%22,%22... (“frame-src * tfs:”) 处加载资源。

我对 CSP 完全陌生,但实际上我不确定问题出在哪里。根据 frame-src 政策(这似乎适用于我在 VSTS 的 iframe 中呈现的内容),我不确定为什么会被阻止:

在我看来, frame-src 允许*,换句话说,允许任何内容,或者tfs:

我看不出有script-src任何问题:

这是我从标题中看到的完整 CSP:

看来我应该使用不同的方法来正确完成此任务,而不是我采用的方法,但我不确定从这里去哪里。先发制人地向 Microsoft 的一些人大喊,他们非常擅长监视 SO 中的 VSTS 标签并提供有用的信息,谢谢!

0 投票
1 回答
410 浏览

azure-devops - VSTS - 将扩展发布到私有集合以进行测试

我创建了一些 VSTS 扩展供内部使用。我还使用 MS DevLabs 的“用于 VSTS 扩展的 CI/CD 工具”为这些创建了一个 CI/CD 管道。我的方法是首先将扩展推送到私有测试 VSTS 集合,然后一旦我验证了它们,我就会与我的“产品”集合共享它们。我昨天注意到我的更改在我的产品集合中立即可见,所以我需要纠正它。

发布管道如下:

测试环境执行发布扩展、共享扩展和安装扩展。

  • 发布:我将“扩展可见性”设置为私有,并将“共享”设置为我的测试集合。
  • 分享:“分享给”设置为我的测试集。
  • 安装:“安装在”设置为我的测试集合

Prod 环境执行共享和安装。那些推到我的产品系列中。我设置了预部署授权,因此我可以在验证测试后发布到 prod 环境。我还没有批准任何更改,所以我不希望我在 prod 集合中进行更改。

为什么仅针对测试环境执行后,我的扩展发布在我的产品集合中立即可见?是因为一旦我发布了任何安装了我的扩展程序的集合,就可以看到新功能?我是否需要在发布步骤中将可见性设置为私人预览?

如果是这样,这是否意味着我需要在我的“产品”环境中添加发布以将我的扩展从私人预览版更改为私人版?我担心在这种情况下我需要将版本控制步骤从构建中移出并进入发布。我假设我不能在不更改版本的情况下再次发布扩展。由于共享是发布的一部分,因此在测试环境中是否需要共享步骤?

0 投票
2 回答
315 浏览

javascript - VSTS 扩展 - 网格源中的超链接

制作了我自己的 VSTS 扩展,它返回一个带有使用 wiql 读取的错误列表的网格。

我希望(UI 控件)网格包含错误标题和到错误 url 的超链接,以便可以单击标题跳转到错误。我找不到这样做的任何可能性,但我不相信这是不可能的。

这就是我将源构建到网格的方式:

然后:

我尝试用 替换w.fields["System.Title"]w.fields["System.Title"].link(w.url)结果是表格中的 html 超链接,而不是网格内的超链接。

有任何想法吗?

0 投票
1 回答
144 浏览

javascript - 无法发布 vss 扩展。"public": true 导致错误

我完成了我的 VSTS 扩展并准备发布它。我按照这里的步骤操作:https ://docs.microsoft.com/en-us/vsts/extend/publish/command-line 。

我收到以下错误:

我注意到,如果我"public": true,从“vss-extension.json”文件中删除,那么一切都会正常工作,并且扩展程序将被加载并且可以正常工作。唯一的问题是它永远不会被发布。根据 MS 的说法,我是授权出版商。

任何人都可以查看下面的“vss-extension.json”文件并检查我是否遗漏了什么。谢谢。

0 投票
1 回答
140 浏览

azure-devops - 如何限制对特定用户或组的 VSTS 扩展访问?

我们正在开发 VSTS 扩展,并希望只允许选定的用户/组访问和使用扩展的功能。此扩展实质上添加了一个从齿轮菜单链接的仪表板。

如果用户无权访问扩展程序从 VSTS 中提取的各种数据,他们将导致此扩展程序的某些部分无法工作 - 但如果我们没有明确授权组,我们确实希望完全隐藏扩展程序及其链接查看它。

我检查了开发扩展文档以及安全文档中的各个页面,但没有找到与此类主题相关的任何内容。

我想知道是否可以检查用户的身份详细信息并据此拒绝访问,但是身份 API 还没有功能,所以我认为该选项目前对我不可用。

0 投票
1 回答
61 浏览

typescript - VSTS 扩展中 Typescript 模块的依赖关系问题

我开始将TypeScript 2.6.2用于具有 UI 控件的VSTS 扩展项目。它的 HTML 文件曾经具有用于 3rd 方引用的硬编码路径。由于其中一些引入了很多内部逻辑和复杂性,因此决定创建单独的模块来帮助代码的可维护性和测试。测试是使用mochachai创建的。被测模块 ( X ) 本身需要一个 3rd 方库 ( Y ),其中类型定义 ( @types/y ) 已成功安装和导入 ( import {sth} from y )。测试运行良好,没有问题。但是,模块X客户端也需要,一旦VSS SDK报告就绪状态,就会在 HTML 中引用。发生这种情况时,Y 无法解决。提到的 requirejs 文档提示链接存在脚本错误。找不到y.js文件。

配置中的编译器选项设置为“amd”用于模块和“节点”模块解析。我不知道我应该如何一直解决这个依赖链。

那么,解决这个问题的最佳方法是什么,以便它在测试和生产场景中都有效呢?

谢谢!