【问题标题】:Manipulating the release def ACL from a Visual Studio Web extension从 Visual Studio Web 扩展操作 release def ACL
【发布时间】:2017-06-26 16:44:56
【问题描述】:

Visual Studio 2015 u2,构建一个 Web 扩展,一个发布定义上下文菜单的操作处理程序。我希望我的扩展能够操作 def 上的 ACL。

在 JavaScript 客户端库中有一个钩子吗? REST API 端点 exists,但 JavaScript API documentation 非常不完整。具体来说,我找不到可通过 VSS.require() 获得的模块列表,这似乎是获取 REST API 包装器的正确方法。

编辑:好的,模块名称似乎列出了here,它源自those sources on Github。几乎不是官方的,但总比没有好。

【问题讨论】:

    标签: azure-devops-extensions


    【解决方案1】:

    没有文档,但我可以在 https://raw.githubusercontent.com/microsoft/vss-web-extension-sdk/master/typings/vss.d.ts 找到类型定义文档。具体来说,如果您查找“VSS/Security/RestClient”,您将在 API 客户端中找到方法列表。要使用它,您可以执行以下操作:

    VSS.require(["VSS/Service", "VSS/Security/RestClient"],
        function (Srv, SecAPI)
        {
             var SecClient = Srv.getCollectionClient(SecAPI.SecurityHttpClient);
             SecClient.queryAccessControlLists(NamespaceId, TokenId).then(function(a)
             {
                  //...
             });
        });
    

    命名空间 ID 来自一个 querySecurityNamespaces() 调用,它目前在我身上出错,但我可以让它从外部 REST 客户端工作(奇怪!)。不知道 TokenId 来自哪里。可能是版本定义 ID。

    编辑:使用this monkey-patch 就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      相关资源
      最近更新 更多