¿Cómo hago cumplir automáticamente la revisión de código en Git?

Puede comenzar a usar Gerrit (https://code.google.com/p/gerrit/) como su upstream y no permitir ninguna confirmación sin una revisión.

Gerrit fue escrito para el proyecto Android por la Comunidad Android y algunos Googlers más. Utiliza JGit (implementación de A Git en Java) e implementa el protocolo SSH también. Puede ejecutar Gerrit en el puerto TCP / 22 y mover todo a través de Gerrit. Los administradores de proyectos (configurados con ACL) pueden presionar directamente, evitando la revisión, mientras que los desarrolladores pueden obtener diferentes niveles de cumplimiento y autoridad para las revisiones.

Una desventaja de usar Gerrit es el propio JGit. No implementa ningún enlace, pero Gerrit proporciona enlaces externos para la creación de conjuntos de parches, comentarios, cambios de fusión y cambios de abandono. Sin embargo, estos aún no son satisfactorios para muchos enganches del lado del servidor, como linters, sintaxis y verificadores de estilo que pueden negar los empujes por incumplimiento.

Usamos Gerrit como nuestro principal repositorio principal en StumbleUpon y dejamos de lado los ganchos del servidor, felices de usarlo de esta manera.

Nuestro flujo de trabajo incorpora ReviewBoard. No aplica CR directamente, pero ese no es un gran problema. Simplemente designamos una sucursal que se considera 100% revisada, lo que significa que solo puede fusionarse en ella después de que se revisan las confirmaciones, y confiamos en nosotros mismos para no romper esta regla. Entonces, no es la forma más difícil de hacer cumplir la RC, es cierto, pero sí nos permite utilizar la mejor herramienta de CR (IMHO): http://www.reviewboard.org/