Acceso controlado por Git al repository

Tengo un repository git en el server Apache. ¿Cómo puedo permitir a mis desarrolladores tener acceso completo, es decir, leer y escribir el acceso al repository. Estoy trabajando en la plataforma de Windows.

La idea es llamar a git directamente desde el file de configuration httpd Apache usando el exe git-http-backend .
Esto es parte del protocolo http inteligente , que menciono en esta respuesta .

 Env GIT_PROJECT_ROOT C:/GIT/Apache/repositories SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ "C:/Program Files/git/libexec/git-core/git-http-backend.exe/$1" 

Esa secuencia de commands (que está en cualquier distribución de Git) podrá get una consulta de git en lugar de http y devolver el resultado.

Puede encontrar un ejemplo completo en " Configuración de Git Server en Windows con git-http-backend.exe "


Para un control de nivel de acceso más detallado, puede agregar una capa de autorización como gitolite en su httpd.conf (gitolite luego llamará a hit-http-backend si autoriza la consulta git).
Lo uso en cunjunction con un LDAP (para la parte de authentication) , pero no tienes que usar un LDAP, solo asegúrate de que tu configuration de Apache esté configurada para autenticar usuarios primero, para que gitolite tenga un ID de usuario para trabajar con (permitir o denegar).