2015-01-30 2 views
8

Ho cercato di capire il metodo di recupero delle autorizzazioni su un determinato repository Git a livello di codice.Interroga a livello di programmazione le autorizzazioni su un repository Git ospitato su TFS

Il riferimento API TFS fornito online non riporta alcuna API di sicurezza. Tuttavia, questo è sicuramente fatto in TFS quando si visualizza o si modifica la sicurezza dal portale web.

monitoraggio delle chiamate web, posso vedere che chiamate effettuate al seguente API

http://tfsserver/tfs/DefaultCollection/[TeamProject]/_api/_security/DisplayPermissions? 
__v=5&tfid=[PROJ_GUID]&permissionSetId=[PERMMISSIONSET_GUID] 
&permissionSetToken=repositories/[REPOSITORY_GUID]. 

ho dedotto tutti i GUID passati alla URL sopra, ma non riusciva a capire dove trovare il GUID per il riempimento il parametro PermissionSetId.

Guardando la pagina Web, posso vedere che il valore viene prelevato da gitRepositoryPermissionSet, ma non riesco a scoprire come ottenere questo valore.

Mi chiedo se qualcuno può darmi una mano con la comprensione di questo parametro.

+0

Nessun tag nei titoli per favore. – jessehouwing

+0

Non pensare che ci sia una vera API REST supportata per questo ancora ... – jessehouwing

risposta

-1

Se si visualizza il repository Git nel browser Web e si esegue uno view-source, si otterrà il codice HTML. Vi si possono trovare qualcosa di simile:

<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 

Questo è ciò che si sta probabilmente cercando.