问题标签 [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 回答
97 浏览

tfs - 使 release def 上下文菜单项有条件地不可见

TFS 2018u1。我正在为发布定义构建一个带有自定义上下文菜单命令的扩展。我希望其中一些有条件地不可见(根据当前用户的权限)。有什么办法可以隐藏它们?

故意不打电话VSS.register()没有帮助;自定义命令仍然存在,只是什么都不做。

这不是安全措施,而是可用性问题(菜单越来越拥挤)。

编辑:在贡献数据结构中有一个名为constraints. 它没有记录,不知道它来自哪里。应该是清单。我能找到的唯一提到的约束是在TFX 工具源中。显然,constraints是清单 JSON 中的一个有效值(可能在贡献对象下),它应该是一个数组。一个假设,一个ContributionConstraint对象。后者是有记录的。

根据文档,约束对象具有一个name属性,该属性包含对IContributionFilter类的引用。我在文档和 TypeScript 源代码中都找不到该类的任何提及。但是,Microsoft.VisualStudio.Services.ExtensionManagement.Sdk.Server.IContributionFilter在 assembly 中有一个接口Microsoft.VisualStudio.Services.ExtensionManagement.Sdk.Server.dll,它有一个Name属性。有派生类bin\Plugins\Microsoft.VisualStudio.Services.ExtensionManagement.Sdk.Plugins.dll

  • ExtensionLicensedFilter
  • 特征标志过滤器
  • LegacyFeatureEnabledFilter
  • 主动扩展过滤器
  • 特征过滤器
  • 安全过滤器

专注于后者。名称是“安全”。看起来它支持以下属性:

  • namespaceId (GUID) - AKA 安全命名空间
  • namespaceToken (string) - 安全对象令牌
  • 权限 (int) - 位掩码,类似于 ACL 中的掩码
  • allowSystemContext (可选布尔) - ???
  • serviceInstanceType(可选 GUID)- 仅对 VSTS 重要

如果您在贡献对象下的清单 JSON 中指定约束,至少它会通过 TFS 数据结构传播并显示VSS.getContribution()在扩展脚本的下方。现在,关于安全检查的详细信息......

0 投票
1 回答
74 浏览

tfs - 检索 TFS 对话框参数

TFS 2018u1。我正在将扩展与自定义对话框放在一起。可以在清单中指定对话框采用查询字符串参数:

然后openDialog()通过传递 . 在调用中提供参数值urlReplacementObject

问题:没有解析查询字符串window.location.search,有没有从对话脚本中检索这些参数值的好方法?

0 投票
0 回答
297 浏览

azure - Azure 存储 REST API 响应在 XML 文件的开头包含 BOM (" )

我正在为发布任务开发一个自定义 vsts 扩展,它有一个选择列表,其中包含从 REST 端点数据源(我的存储帐户)填充的值。我正在关注这个打击链接作为参考。 https://docs.microsoft.com/en-us/vsts/extend/develop/service-endpoints?view=vsts

我已经上传了我的扩展,但选择列表没有填充任务中的值。

以下是我所做的配置。vss-extension.json:

任务.json:

endpointUrl:我在数据源(vss-extension.json)中的 endpointUrl 中尝试了以下方法

  1. {{endpoint.url}}test/?restype=container&comp=list 2. https://mycontainername.blob.core.windows.net/test/restype=container&comp=list

选择列表未填充 blob 内容。我猜上述问题中的问题可能无法解析 azure storage blob list 响应类型。其余的 api 响应在 XML 文件的开头包含 BOM (" ),这可能是解析的原因。一世”

是否有任何方法或解决方法可以更改 azure blob rest api 响应以排除 BOM (" ) 或将响应更改为 JSON 格式。

0 投票
1 回答
41 浏览

azure-devops - 更改 VSTS 中的选项卡顺序

我开发了一个自定义选项卡来呈现 VSTS 构建结果。我可以更改标签顺序,以便我的自定义标签是第一个,因此默认显示?

将标签移动到第一个位置

ms.vss-build-web.build-results-tab贡献类型有一个属性,这order似乎符合我的目的。但是我尝试将它与几个不同的值一起使用,但没有任何效果。该属性的文档很差,我看到一些示例提到它已被弃用。

0 投票
1 回答
175 浏览

azure-devops - VSTS 选项卡扩展内容的大小

我开发了一个自定义选项卡来呈现 VSTS 构建结果。VSTS 在iframewith中托管选项卡内容height: 100%。然而,它的祖先之一(div带有类build-custom-tab)具有 400px 的固定高度:

VSTS DOM 截图

这意味着如果我的标签内容的高度超过 400 像素,它就会被剪切。我怎样才能绕过这个限制?具体来说,我希望我的扩展使用所有可用空间。

VSTS SDK 中有VSS.resize方法,但是修改大小iframe是不够的。

扩展的完整源代码可在此处获得。

0 投票
1 回答
1634 浏览

node.js - 我的 tsconfig.json 在我的 node_modules 目录中找不到模块,不确定出了什么问题

我有以下层次结构:

此外,我正在尝试为内部(私人)使用创建一个 VSTS 任务扩展。最初,我的 tsconfig.json 在我的根目录中,并且在我的本地机器上一切正常。问题是 VSTS 扩展要求所有文件都包含在与任务文件夹本身相同的目录中。有关详细信息,请参阅https://github.com/Microsoft/vsts-task-lib/issues/274

您需要发布一个自包含的任务文件夹。代理不会运行 npm install 来恢复您的依赖项。


最初,我通过包含一个将整个 node_modules 目录复制到每个任务文件夹中的步骤解决了这个问题,在这种情况下,我的CustomTask文件夹包含我的 JS 文件。但是,考虑到并非我正在编写的每个任务都具有相同的模块要求,这似乎有点过分。

我的想法是在每个任务文件夹中创建一个 tsconfig.json 来指定创建一个包含所有依赖模块的单个输出文件,但不幸的是它不起作用:

在添加“路径”之前,我收到以下错误:

错误 TS2307:找不到模块“vsts-task-lib/task”。
错误 TS2307:找不到模块“时刻”。

添加路径后,我仍然得到它找不到模块“moment”的错误,它位于我的 node_modules 目录中。另外,当我查看输出 JS 时,它似乎没有包含必要的“vsts-tasks-lib”代码,可能是因为它在“moment”模块方面仍然存在错误?不确定我错过了什么?

0 投票
0 回答
190 浏览

github - 具有自己扩展的自定义 GitHub 选项卡

我正在为 github 做一个扩展。我已经为 VSTS 创建了扩展。

在此处输入图像描述

我的目标 - 编写扩展程序,添加一些具有自己功能的自定义选项卡。

在此处输入图像描述

Github 指南解释说我可以创建“github 应用程序”,它将我订阅的所有更改发送到我的 webhook 服务器。但是他们网站上的新功能与 VSTS 没有什么不同。

我安装了添加此自定义选项卡的其他开发人员的扩展。但他们都需要安装 chrome 扩展。

我是否需要开发在 github.com 页面上添加此选项卡的 chrome 扩展程序。或者还有其他方法可以实现吗?

0 投票
1 回答
23 浏览

azure-devops - 从 VSTS 扩展调用内置命令

是否可以从自定义扩展调用内置的 VSTS 命令?

我开发了一个带有自定义测试结果选项卡的扩展,我想重用一些内置的 VSTS 功能。例如,调用Create bug menu action 来为给定的测试结果创建一个新的 bug 工作项。

0 投票
1 回答
275 浏览

tfs - VSTS 扩展:根据流程模板填充工作项类型

我正在开发 VSTS 扩展,我需要根据项目的流程模板将工作项类型填充到组合框。

例如:如果用户有敏捷模板的项目,工作项类型应该相应地加载,如果用户使用带有 scrum 模板的项目,组合框中应该有不同的工作项类型集(请注意,在下面的列表中,我们在 Scrum 中得到了“障碍”敏捷中的“问题”)

流程模板:敏捷

  • 任务
  • 漏洞
  • 问题
  • 史诗
  • 特征
  • 测试用例

流程模板: Scrum

  • 任务
  • 漏洞
  • 障碍
  • 史诗
  • 特征
  • 测试用例

因为我们只是控制 task.json 文件来定义 UI,我发现不可能动态填充不同的组合框项目集。有什么办法可以做到这一点?请对此有所了解。

提前致谢

0 投票
1 回答
743 浏览

azure-devops - VSTS 扩展:从新的 repo 初始化或创建一个 master 分支

是否可以使用 Visual Studio Team Services REST API 来初始化新创建的存储库?