¿Puedo establecer políticas pnetworkingeterminadas de security y / o de sucursales en Visual Studio Team Services (Visual Studio Online)?

Estamos usando Visual Studio Team Services para nuestro server git. Cada proyecto VSTS alberga uno o varios repositorys git. Tenemos la convención de mantener master y develop twigs bloqueadas, pero dejando que otras twigs permanezcan sin restricciones.

Me gustaría poder aplicar nuestras reglas estándar a nivel de proyecto y hacer que sean las pnetworkingeterminadas para todas las reposiciones dentro de ellas:

  • master y develop debe tener su security negar Force Push
  • twig master requiere una request de extracción a través de una política de revisión de código

Hasta ahora, la única opción que he encontrado es configurar manualmente por repository, a través de la interfaz web (¡ni siquiera una API!). Tenemos al less más de 200 repositorys y nos encantaría evitar tener que configurar manualmente cada repository y sucursal uno por uno.

¿Cómo configuro las políticas de códigos y de security pnetworkingeterminadas por nombre de sucursal? ¿O de alguna manera que no sea manualmente?

  • Para establecer políticas de sucursal con mínimos revisores para múltiples repositorys de git en un proyecto de equipo (a nivel de proyecto), puede usar REST API. Detalle los pasos a continuación:

1. Obtenga todos los repositorys de git para el proyecto del equipo.

 GET https://account.visualstudio.com/DefaultCollection/ProjectName/_apis/git/repositories?api-version=1.0 

A continuación, guarde cada identificación de repository de git y su nombre de salida.

2. Realice un bucle de los repositorys que obtuvo en el paso 1 de su código mediante el id. De repository y cree una política de sucursal para cada sucursal principal (suponga que el número mínimo de revisores es 2 aquí).

 POST https://account.visualstudio.com/DefaultCollection/ProjectName/_apis/policy/configurations?api-version=2.0-preview 

Aplicación / json:

 { "isEnabled": true, "isBlocking": true, "type": { "id": "fa4e907d-c16b-4a4c-9dfa-4906e5d171dd" }, "settings": { "minimumApproverCount": 2, "creatorVoteCounts": false, "allowDownvotes": false, "scope": [ { "refName": "refs/heads/master", "matchKind": "Exact", "repositoryId": "{repo id}" } ] } } 
  • Para configurar la security de la sucursal (force push como denegar), no existe dicha API REST, y he publicado una voz de usuario. Establezca la security de la sucursal mediante la API REST , puede votar y realizar un seguimiento.