use el usuario de authentication básica de apache como autor de git

He configurado gitlist + apache + basic auth + git-http-backend, y tanto web display como git clone del repository de git funcionan bien.

Sin embargo, para el código comprometido, quiero usar el nombre de usuario durante la authentication de Apache para el nombre del autor (o el nombre del comitente).

La razón es que, a veces, los ingenieros hacen parches ad-hoc directamente en los serveres de testing y vuelven a colocar el código en git una vez que se finaliza el parche. Por lo tanto, ahora todos los parches comparten el mismo nombre de autor, lo cual es difícil de verificar (o culpar).

Algún consejo sobre esto, por favor? muchas gracias.

Cuando realizo modificaciones en el server directamente, wgit git en un script personalizado ( wgit ) que obliga al usuario a elegir un alias como:

 alias agitVoncGitHub='alias git="${H}/sbin/wgit u VonC,vonc@laposte.net,github.com"' 

Eso significa que un git xxx realmente llamará:

 sbin/wgit u VonC,vonc@laposte.net,github.com xxx 

Si se wgit (alias pnetworkingeterminado para git ) solo, se muestra un post de error :

 echo type alias and choose the right agitxx to activate in order for your git to identify yourself exit 1 

Los dos primeros parameters definen un nombre de usuario y un correo electrónico que se reutilizarán para modificar las variables de entorno de Git :

 # if parent shell had already set authentication variables, nothing to do: commit will be correctly signed-off if [[ ! ( $GIT_AUTHOR_NAME && $GIT_AUTHOR_EMAIL && $GIT_COMMITTER_NAME && $GIT_COMMITTER_EMAIL ) ]] then export GIT_AUTHOR_NAME=$username export GIT_COMMITTER_NAME=$username export GIT_AUTHOR_EMAIL=$email export GIT_COMMITTER_EMAIL=$email fi 

Eso me permite agregar al post un post que se muestra en todo momento (para cualquier command git) quién eres:

 echo -e "[ \E[34;47m$GIT_AUTHOR_NAME,$GIT_AUTHOR_EMAIL for $machine\033[0m ]" nextcmd=${gitcmd[0]} 

Si realmente necesita eludir esa parte de authentication, puede agregar una variable xxgit delante de su command git :

 xxgit=1 git ... 

Ese command git ... funcionará incluso si no eligió un alias para identificarse.

Entonces, después de algunas investigaciones adicionales, esto es lo que obtuve hasta ahora.

  1. de hecho, los ganchos de git (por ejemplo, pre-recibir y post-recibir) recostackron el nombre de usuario de la authentication apache, como una variable de shell ${REMOTE_USER} o ${GIT_COMMITTER_NAME} .

  2. Sin embargo, no sirvió de mucho, ya que parece muy difícil cambiar el nombre del autor de un commit dentro de los hooks (lo que parece razonable). Usando algunos hacks, podría asegurarme de que mi sistema de tickets (Trac) usa al usuario apache, pero eso probablemente causaría más confusión.

  3. Por ahora, solo agregaría algunas comprobaciones dentro del gancho de pre-recepción , para que el autor de cada confirmación coincida con la list de usuarios dentro del sistema de git. De lo contrario, se rechaza la inserción y el usuario debe modificar el autor de nuevo usando rebase.

  4. Por lo tanto, a less que el ingeniero use explícitamente el nombre de autor legítimo de otros, siempre debe tratar de confirmar el cambio usando su propio nombre de inicio de session.

  5. A largo ploop, creo que cada ingeniero debería tener su propia count, como lo describió Vonc, que aclararía las cosas.