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:
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 GerritEl 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).
- Haga clic en "Agregar permiso" y seleccione "Push".
- Seleccione el grupo de usuarios del que desea rechazar el envío (puede escribir "Usuarios registrados" si desea bloquear a todos)
- 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.