2010-09-21 23 views

Respuesta

10

Si está utilizando el protocolo SSH para enviar cambios al servidor, con cada usuario teniendo su propia cuenta en el servidor, entonces su secuencia de comandos debería ejecutarse como el usuario que está haciendo el push. Por lo tanto, debe poder usar whoami o id -un para obtener el nombre de usuario de la persona que realiza el push.

Si no está utilizando esta configuración, la mejor manera de hacer un seguimiento de quién está presionando es probablemente usando Gitolite, un poderoso sistema de autenticación y autorización de Git. En Gitolite, puede usar el update.secondary and post-update.secondary hooks, que tendrá la variable de entorno GL_USER establecida en el usuario actual de Gitolite.

+0

Gracias. Me olvidé de esos ganchos. – takeshin

+0

Los enlaces a los ganchos ahora están rotos. –

+0

@AlexanderGladysh El enlace debería arreglarse ahora. –

0

No estoy seguro de que Git esté destinado a administrar ese tipo de control de acceso.

Es por eso que tiene envolturas basadas en ssh como gitosis o gitolite que proporcionarán el nivel de autenticación adecuado que busca.

+0

Ya estoy usando 'gitolite' para el control de acceso. Solo necesito la información para el script de notificación. – takeshin

+0

@takeshin ... bueno, si hubiera sabido eso, vea la respuesta de Brian (+1);) – VonC

0

No se puede decir que con Git. Si utiliza SSH para enviar, puede usar SSH para obtener el nombre de usuario, si utiliza una interfaz de administración de usuario como gitolite, puede usar que para obtener el nombre de usuario, si usa HTTP con autenticación, puede usar su servidor web para obtener el nombre de usuario, pero los protocolos de red Git no transmiten ningún nombre de usuario.

Cuestiones relacionadas