从Visual Studio Web扩展中操作发行版def ACL

时间:2017-06-26 16:44:56

标签: azure-devops-extensions

Visual Studio 2015 u2,构建Web扩展,发布定义上下文菜单的操作处理程序。我喜欢我的扩展来操纵def上的ACL。

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

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

1 个答案:

答案 0 :(得分:0)

没有文档,但我可以在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来自哪里。也许它是发布def ID。

编辑:就像this monkey-patch的魅力一样。