2012-07-30 14 views
7

Estoy buscando monitorear la actividad de clonación dentro de mi repositorio de git, pero no encuentro nada que muestre cómo configurarlo o cómo recuperar esta información.git repository cloning logging

¿Esto es posible? Si es así, ¿cómo puede configurarse esto y también cómo recuperar la información de registro?

Respuesta

0

No creo que haya ningún gancho o algo similar que se ejecute en el lado del servidor del repositorio en un clon. git probablemente solo use el protocolo especificado (ssh, http, ...) y busque los archivos apropiados. Podría intentar controlar esa actividad de alguna manera.

2

Puede usar un gancho post-checkout para actualizar una base de datos o un archivo en su servidor. Este gancho se ejecuta en el lado del cliente (es decir, la persona que hace el clon ejecutará el guión), por lo que debe diseñar el guión desde esa perspectiva. Además, es posible clonar el repositorio sin ejecutar este enganche agregando la opción --no-checkout al git clone.

Un enfoque simple y confiable sería tener el servidor ejecutando un pequeño servicio web RESTful que su gancho puede llamar con curl o alguna instalación similar. Por ejemplo:

#!/usr/bin/env python 

import socket, sys, urllib, pycurl 

service_url = "https://my.server.dns/service.php" 
data = urllib.urlencode({ 
    'prev': sys.argv[1], 
    'new': sys.argv[2], 
    'branch': sys.argv[3], 
    'host': socket.gethostname() 
    }) 

c = pycurl.Curl() 
c.setopt(pycurl.URL, service_url) 
c.setopt(pycurl.POSTFIELDS, data) 
c.perform() 

Ver http://www.kernel.org/pub/software/scm/git/docs/githooks.html.

0

Iba a publicar la misma pregunta, pero encuentre esta. Lo mejor que pude encontrar es ajustar el comando git-upload-pack para registrar la llamada. Esto solo funcionará en ssh aunque vea: pre-fetch hook functionality in git

Pero solo root podrá hacer esto. No funciona para mí, pero tal vez sea una solución para otros.

Siempre puede instalar un "servidor git" para controlar el acceso como gitolite (http://sitaramc.github.com/gitolite/master-toc.html). O puede iniciar sesión directamente o puede ampliar su funcionalidad.