我一直试图找出以编程方式获取特定Git存储库权限的方法。
在线提供的TFS API参考没有详细说明任何安全API。但是,当您或从Web门户查看修改安全性时,这肯定在TFS中完成。
跟踪网络电话,我可以看到正在调用以下API
http://tfsserver/tfs/DefaultCollection/[TeamProject]/_api/_security/DisplayPermissions?
__v=5&tfid=[PROJ_GUID]&permissionSetId=[PERMMISSIONSET_GUID]
&permissionSetToken=repositories/[REPOSITORY_GUID].
我已经推断了传递给上述URL的所有GUID,但无法理解从哪里获取GUID以填充PermissionSetId参数。
查看网页,我可以看到从gitRepositoryPermissionSet
获取的值,但我找不到如何获取此值。
想知道是否有人可以帮助我理解这个参数。
答案 0 :(得分:0)
早在2015年,尚无完善的API,但由于情况已发生变化。现在有一个完整的REST api用于权限,可以使用tfssecurity,并且Azure-CLI已扩展为具有查询和设置权限的能力。
我最近写了一篇博客文章,探讨了Git存储库权限:
答案 1 :(得分:-2)
如果您在Web浏览器中查看Git存储库并执行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
这是你最想要的。