Lo que estoy tratando de lograr es lo siguiente: los compañeros de trabajo están en el grupo @queueboradores, los clientes están en grupos @clientes.
El repository de Git estará disponible para leer y escribir para todos, pero habrá twigs especiales. es decir, creo una nueva twig "interna" y @queueboradores tendrán RW + acceso, pero los clientes NO deberían poder R o W.
Pensé que puedo lograr eso por
repo myrepo - intern = @clients RW+ = @clients @coworkers
Pero esto no funciona.
Según una discusión con el autor de gitolite, la restricción de acceso de lectura no es posible para las sucursales:
Las cosas por twig de Gitolite solo funcionan para el acceso de escritura. No funciona para el acceso de lectura porque git en sí no admite hacer esa distinción.
Ahora es posible restringir el acceso de lectura a las twigs de gitolita con la última versión de gitolite v3.x utilizando la function de copy parcial de gitolita.
partial-copy
en la sección ENABLE
del file ~ / .gitolite.rc $GIT_CONFIG_KEYS = '.*'
en el file ~ / .gitolite.rc Ejemplo: si desea que el cliente solo tenga acceso a la twig de deploy
repo my-repo RW+ = @coworkers repo my-repo-deploy RW deploy = @clients - = @clients - VREF/partial-copy = @all config gitolite.partialCopyOf = my-repo
si git se queja de que no puede eliminar la twig maestra, puede usar este command en el server:
sudo git config --system receive.denyDeleteCurrent warn sudo git config --global receive.denyDeleteCurrent warn
Los clientes ahora pueden clonar la twig de implementación del repository my-repo-deploy con un command como este:
git clone -b deploy git@your-server:my-repo-deploy
No soy un experto en gitolite, pero creo que las reglas se procesan en order. ¿Has intentado simplemente invertir las últimas dos líneas? Es decir, conceda permiso a @clients y @coworkers primero, y luego niegue el acceso al interno por @clients.