rietveld releases google git gerrit

releases - gerrit vs github



Gerrit: cómo rechazar el empuje directo al "maestro" pero permitir que otras ramas (3)

AFAIK puede configurar permisos para cada repositorio / proyecto en gerrit. Por ejemplo, quién puede presionar / quién puede forzar presión / quién puede aprobar sus cambios y todo eso. Revisa el enlace de abajo si es útil:

https://git.eclipse.org/r/Documentation/access-control.html

Quiero configurar la configuración que se describe a continuación:

  • El usuario registrado no puede empujar sus cambios directamente al maestro. Él tiene que empujar estos cambios para su revisión:

    git push origin master - debe ser rechazado por Gerrit (origen = Gerrit)

    git push origin HEAD:refs/for/master - debe estar permitido por Gerrit

  • El usuario registrado puede crear una nueva rama. Esta rama se tratará como una copia de seguridad y una forma de cooperación entre dos o más desarrolladores, por lo que no debe revisarse.

    git push origin xyz_abc - Gerrit debería permitirlo

¿Cómo debo configurar Gerrit para lograr dicha funcionalidad?


No hay buenas instrucciones en ninguna parte, así que pensé en documentar los pasos aquí.

1. Navegue a la página de acceso de su proyecto

Proyectos> Lista> your_project> Acceso

2. Editar acceso

Haga clic en el botón Editar

3. Añadir referencia a refs / heads / *

Esta es la referencia para todos los empujes directos. Vamos a configurar quién puede hacer qué a este camino.

Haga clic en "Agregar referencia" y escriba ''refs / heads / *'' (sin comillas)

4. Denegar el permiso "Push"

El permiso de Empuje es el que controla quién puede hacer empujes directos. La combinación de empujes y empujones hacia Gerrit todavía se permitirá (vea las notas a continuación).

  1. Haga clic en "Agregar permiso" y seleccione "Push".
  2. Seleccione el grupo de usuarios del que desea rechazar el envío (puede escribir "Usuarios registrados" si desea bloquear a todos)
  3. Elija "NEGAR" en el menú desplegable que aparece una vez que haya agregado su grupo de usuarios

5. Guardar cambios

Y tu estas listo. La configuración terminada debería verse algo como esto:

Nota

Si esto no funciona, asegúrese de tener el permiso Push establecido en ALLOW on refs / for / refs / *; este es el permiso que permite push en Gerrit.


Si hay muchas sucursales, puede usar espacios de nombres (por ejemplo, dev / *) para las sucursales y configurar el control de acceso para estos espacios de nombres.