问题标签 [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.
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()
在扩展脚本的下方。现在,关于安全检查的详细信息......
tfs - 检索 TFS 对话框参数
TFS 2018u1。我正在将扩展与自定义对话框放在一起。可以在清单中指定对话框采用查询字符串参数:
然后openDialog()
通过传递 . 在调用中提供参数值urlReplacementObject
。
问题:没有解析查询字符串window.location.search
,有没有从对话脚本中检索这些参数值的好方法?
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 中尝试了以下方法
- {{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 格式。
azure-devops - VSTS 选项卡扩展内容的大小
我开发了一个自定义选项卡来呈现 VSTS 构建结果。VSTS 在iframe
with中托管选项卡内容height: 100%
。然而,它的祖先之一(div
带有类build-custom-tab
)具有 400px 的固定高度:
这意味着如果我的标签内容的高度超过 400 像素,它就会被剪切。我怎样才能绕过这个限制?具体来说,我希望我的扩展使用所有可用空间。
VSTS SDK 中有VSS.resize
方法,但是修改大小iframe
是不够的。
扩展的完整源代码可在此处获得。
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”模块方面仍然存在错误?不确定我错过了什么?
azure-devops - 从 VSTS 扩展调用内置命令
是否可以从自定义扩展调用内置的 VSTS 命令?
我开发了一个带有自定义测试结果选项卡的扩展,我想重用一些内置的 VSTS 功能。例如,调用Create bug menu action 来为给定的测试结果创建一个新的 bug 工作项。
tfs - VSTS 扩展:根据流程模板填充工作项类型
我正在开发 VSTS 扩展,我需要根据项目的流程模板将工作项类型填充到组合框。
例如:如果用户有敏捷模板的项目,工作项类型应该相应地加载,如果用户使用带有 scrum 模板的项目,组合框中应该有不同的工作项类型集(请注意,在下面的列表中,我们在 Scrum 中得到了“障碍”敏捷中的“问题”)
流程模板:敏捷
- 任务
- 漏洞
- 问题
- 史诗
- 特征
- 测试用例
流程模板: Scrum
- 任务
- 漏洞
- 障碍
- 史诗
- 特征
- 测试用例
因为我们只是控制 task.json 文件来定义 UI,我发现不可能动态填充不同的组合框项目集。有什么办法可以做到这一点?请对此有所了解。
提前致谢
azure-devops - VSTS 扩展:从新的 repo 初始化或创建一个 master 分支
是否可以使用 Visual Studio Team Services REST API 来初始化新创建的存储库?