… para que parezca profesional del todo.
Más ajustes en el repositorio
Además de asegurarme de que todos los repositorios son del tipo sin carpeta de trabajo he procedido a renombrarlos siguiendo la costumbre y les he añadido la extensión .git al nombre.
Otra característica más que he añadido han sido dos herramientas tomadas del artículo de Plan Zero y que permiten crear cómodamente un repositorio y añadir una clave de acceso al cuenta del repositorio.
Animado por la sencillez del diseño me he lanzado y he creado un pequeño script que permite cambiar la descripción del repositorio cómodamente.
$ ssh git@venexma.net description empresa-network Current description: Unnamed repository; edit this file 'description' to name the repository. Enter the new description: Configuración de servicios de red auxiliares Description updated
El script es muy sencillo:
#!/bin/sh # If no project name is given if [ $# -eq 0 ] then # Display usage and stop echo "Usage: description <project.git>" exit 1 else REPO=$1.git fi if [ ! -d "$REPO" ]; then echo "Repository $REPO not found" exit 1 else echo "Current description: " cat $REPO/description fi # Read the description echo "Enter the new description:" read desc if [ -z "$desc" ]; then echo "Description not changed !" else echo $desc > $REPO/description echo "Description updated" fi exit 0
Acceso vía web
En la empresa el código está organizado en un servidor web virtual llamado code.empresa.com y el acceso a los distintos repositorios se realiza vía URL:
- http://code.empresa.com/debian es el repositorio de paquetes Debian
- http://code.empresa.com/git es el repositorio git
Así que la configuración de Apache es bastante sencilla:
Alias /git /var/lib/git <Directory /var/lib/git> Options AllowOverride Order allow, deny Allow from all </Directory>
Por lo que para clonar un repositorio con las tipografías de la empresa -por ejemplo- es suficiente con
$ git clone http://code.empresa.com/git/empresa-fonts.git
Pero, eso sí, es necesario completar antes algunos detalles en cada repositorio. El primero de ellos es asegurarse de que existe un programa dentro del directorio hooks de cada repositorio que lance a su vez al programa git update-server-info tras cada actualización. El segundo detalle es asegurarse de que al menos éste proceso se ha ejecutado una vez para que los datos estén preparados.
Respecto a la seguridad debo decir que este acceso es sólo para la intranet. Desde el punto de vista exterior es necesario identificarse antes.
Un paso más allá
La guía mencionada en el artículo anterior explica como configurar gitosis y gitweb. El primero facilita el mantenimiento de usuarios con permisos de escritura y lectura a los diferentes repositorios empleando él mismo otro repositorio de administración. El segundo sirve para dar una fachada agradable de los repositorios empleando un navegador web para recorrerlos.
gitosis no me sirve de nada al estar más sólo que la una así que me he lanzado a instalar y configurar gitweb y el resultado es bastante bueno. He limitado los repositorios visibles a los que creo que pueden ser interesantes y he dejado pendiente instalarme uno en mi propio servidor.