permission manage lock security git code-access-security git-branch

security - manage - vsts add build policy



Soporte de GIT para la autorización de usuarios basada en sucursales: ¿Mejores prácticas o herramientas? (2)

Para un repositorio de GIT basado en productos, en el que existen ramas para el mantenimiento, las pruebas y el desarrollo futuro, ¿cómo puedo controlar el acceso de los usuarios a estas ramas? Al acceder, me refiero a que, aunque otros puedan leer de él, no deberían poder realizar cambios inadvertidamente en el repositorio.

Por ejemplo,

A - B - C - D - E - F -> master | | | V1 V2'' exp | V2

"B" es la confirmación utilizada para Branch con la etiqueta V1, destinada a la versión lanzada del producto. Solo los ingenieros de soporte / mantenimiento deben tener acceso a esto.

C se usa para un producto de prelanzamiento recientemente congelado V2 ''y solo debe permitir correcciones de errores críticas para el show-stopper, por lo que solo ciertos desarrolladores y el equipo de pruebas deben tener acceso a él. cuando se libera V2 desde esta rama, solo el Soporte debe acceder a ella, como es el caso con V1.

E se utiliza para realizar una bifurcación y probar una nueva característica para futuros V3: solo los desarrolladores y no el Soporte deben acceder a ella.

los cambios "maestros" solo se deben fusionar en una base de solicitud (similar a, por ejemplo, GitHub) por parte de un equipo de integración central.

¿Cómo se puede lograr lo anterior con git? Recuerdo haber visto la gitosis y algunas otras herramientas externas: ¿son esenciales para una operación segura con git o existen otras mejores prácticas?

Gracias.

AGREGADO modelo de ramificación de mejores prácticas de Gitflow


Ponga un enlace de confirmación del lado del servidor que niega los commits a las ramas que necesite de solo lectura o basadas en quién es el committer.

Para fusionar flujo de trabajo de solicitud, utilizamos una instalación local de Gitorious y enviamos solicitudes de fusión a través de su interfaz web y restringimos el repositorio main-line a su equipo de integración, todos los demás trabajarían desde clones del lado del servidor y luego enviarían solicitudes de fusión al principal línea de repositorio.

Con Gitorious no necesitas los ganchos del lado del servidor, solo necesitas restringir el acceso al repositorio de la main-line a solo las personas que deseas ser committer. Mucho más simple y fácil de mantener.


La otra forma clásica de restringir el acceso de inserción a un repositorio (o una sucursal o incluso un directorio) es mediante el uso de gitolite (que en realidad es una gran evolución de la gitosis ).

Puede definir allí (en el archivo de configuración de gitolite ) cualquier grupo de gitolite o grupos de repositorio que necesite y asociar los derechos de acceso RW .

Nota: agosto de 2013:

Hemos liberado restricciones de sucursales que se pueden configurar a través de la pantalla "Administración de sucursales" del administrador del repositorio.

Assembla también brinda dicha protección (desde marzo de 2013).

GitHub aún no tiene esta característica :
GitHub tiene esa función desde septiembre de 2015: ver " Cómo proteger" maestro "en github? ".