2012-08-10 8 views
6

Considérese la siguiente repo:gitolite no permitir el acceso para el directorio en la rama principal, pero no en la rama de usuario

REPO/src/A/

REPO/src/B/

¿Es posible por tener solo 1 repo para implementar las siguientes restricciones?

  1. en la rama principal, permitir el acceso completo a los mantenedores de papel
  2. en la rama principal, no permitir el acceso a la A, pero permitir a B papel colaboradores.
  3. En las ramas personales, permite el acceso total a A y B a los creadores.
+0

Nota : el VREF por nombre podría ser, en su caso: 'VREF/NAME/src/A' en lugar de' VREF/NAME/A'. – VonC

Respuesta

4

Con Gitolite V3 or 'g3' y su VREF, debería ser posible implementar esas restricciones.

Pero el acceso que puede administrar es solo para escritura.
Si un usuario puede clonar un repositorio, tendrá acceso de lectura a todos el repositorio (como se menciona en "gitolite: allow to change only selelected files").
Si realmente quiere limitar el acceso de lectura, puede intentar gitolite 'partial-copy'.

pocos notas:

Un access rule es como:

<permission> <zero or more refexes> = <one or more users/user groups> 

<zero or more refexes> significa que su lata combina refexes

Eso le daría algo similar (no probado):

repo REPO 
     RW+ master      = MAINTAINER 
     - master   VREF/NAME/A = CONTRIBUTOR 
     RW master   VREF/NAME/B = CONTRIBUTOR 
     RW personal/USER/ VREF/NAME/A = CREATOR 
     RW personal/USER/ VREF/NAME/B = CREATOR 
+0

Oye, no me importa el acceso de lectura. Voy a probar tu configuración sugerida y regresar con comentarios. – Konstantinos

+1

@Konstantinos Excelente. Asegúrese de tener gitolite V3 instalado dentro de su configuración de GitLab. Y pruébelo fuera de gitlab, con el comando git directo a través de ssh. – VonC

+0

@VonC, pero ¿no se combinan los refexes ORed y no ANDed? –

0
repo REPO 
    - master VREF/NAME/src/A = @contributors 
    RW+ master = @maintainers @contributors 
    RW+ personal/ = @creators 
Cuestiones relacionadas