以编程方式查询TFS上托管的Git存储库的权限

Ham*_*hid 8 git tfs tfs-sdk azure-devops

我一直试图找出以编程方式获取特定Git存储库的权限的方法.

在线提供的TFS API参考没有详细说明任何安全API.但是,当您或从Web门户查看修改安全性时,这肯定在TFS中完成.

跟踪Web调用,我可以看到调用以下API

http://tfsserver/tfs/DefaultCollection/[TeamProject]/_api/_security/DisplayPermissions?
__v=5&tfid=[PROJ_GUID]&permissionSetId=[PERMMISSIONSET_GUID]
&permissionSetToken=repositories/[REPOSITORY_GUID].
Run Code Online (Sandbox Code Playgroud)

我已经推断出传递给上述URL的所有GUID,但无法理解从哪里获取GUID以填充PermissionSetId参数.

看看网页,我可以看到从中获取的价值gitRepositoryPermissionSet,但我找不到如何获得这个价值.

想知道是否有人可以帮助我理解这个参数.

小智 0

如果您在 Web 浏览器中查看 Git 存储库并执行 a 操作view-source,您将获得它的 HTML 源代码。在那里你会发现类似这样的东西:

<script class="options" defer="defer" type="application/json">
{"tfsRepositoryPermissionSet":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 **"gitRepositoryPermissionSet":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"**,
 "projectGuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 "projectUri":"vstfs:///Classification/TeamProject/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 "projectVersionControlInfo":{
     "supportsGit":true,
     "project":{
         "id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
         "name":"xxxxxx",
         "url":"http://xxx:xxx/xxx/xxxxxxxxxxxxxxxx/_apis/projects/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
         "state":"wellFormed"
     }
 },
 "gitRepositories":[
     {"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","name":"xx
Run Code Online (Sandbox Code Playgroud)

这很可能是您正在寻找的。