Uno de los beneficios que aporta Redmine a un proyecto de desarrollo software es que permite conectarse con un repositorio software, de forma que los trabajos desempeñados en la herramienta y que se han desarrollado queden relacionados con el código afectado. En este artículo veremos cómo configurar un repositorio SVN en Redmine.
Esto permite añadir anotaciones a los tickets de redmine del tipo r123 que indica que ese ticket se ha desarrollado en la revisión r123 de SVN. Incluir en un comentario de un ticket el texto "r123" crea un hipervínculo a la pestaña Repositorio de Redmine mostrando qué ficheros del software se han visto afectados y cuáles son las diferencias respecto la revisión anterior.
Tabla de contenidos
Configurar Redmine a nivel de administración
Primero vamos a realizar la configuración a nivel de la aplicación Redmine, para poder especificar qué tipos de repositorios queremos utilizar en nuestros proyectos.
Desde administración de Redmine, podemos habilitar varios tipos de repositorios (SVN, Git, etc). Desde esta pantalla podemos ver si nuestro servidor de Redmine tiene conectividad con dicho repositorio si aparece un check verde. En caso de problemas aparecería un check con una X en rojo.
También existe un fichero de configuración donde podemos realizar configuraciones más específicas. En nuestro caso, para añadir un repositorio y hacer un uso normal de este no es necesario que indiquemos nada, pero lo dejo dicho por si fuera necesario. Dicha configuración se realiza en el fichero:
configuration.yml
Habilitar el módulo repositorio en Redmine
Una vez activado los tipos de repositorios en Redmine a nivel de administración, debemos habilitar la funcionalidad de Repositorio en aquellos proyectos donde queramos hacer uso de ellos. Para ello deberemos irnos a la configuración del proyecto de Redmine y activar el módulo dentro del proyecto.
Una vez activado el módulo debemos configurarlo desde la configuración del proyecto de Redmine introduciendo la url de nuestro repositorio y las credenciales que usará redmine para autenticar contra ese repositorio.
Aquí ya lo tenemos configurado y podemos ver que se nos habilita una pestaña nueva Repositorio.
Al principio aparecerá vacío.
Pero según vayamos trabajando sobre él podemos llegar a tener una vista como esta de ejemplo que he cogido de la web oficial de Redmine.
Aquí se ve el árbol del repositorio, y cada una de las revisiones realizadas por los desarrolladores. También podemos visualizar las diferencias entre revisiones.
Si en un ticket de Redmine añadimos un comentario que ponga r15835 se creará un hipervínculo con esa revisión y podremos visualizar todos los ficheros que se han visto afectados por ese cambio en una ventana con bastante detalle.
Configurar repositorio SVN con SSL
Cada vez que conectemos con el repositorio para mostrar la información de una revisión puede que nos pregunte por el ceritifcado digital de dicho repositorio. Como eso se realiza a nivel de servidor el usuario no se percata y recibe un error 404, indicando que consigue conectar con el repositorio pero que no consigue encontrar dicha ruta o revisión.
En estos casos el problema en la configuración del certificado digital del repositorio dentro del servidor donde está alojado nuestro Redmine. Deberemos hacer que el servidor actualice la información del certificado digital del repositorio y lo acepte de manera permanente. Para ello debemos lanzar el comando con el usuario con el que tenemos levantado el Passenger (esto es muy importante) y ejecutar el siguiente comando:
svn list "https://svn.tu-repositorio.com"
Si lanzáis el comando con el usuario root no funcionará si el Passenger está arrancado con otro usuario. Para saber qué usuario maneja el Passenger debemos consultar el fichero:
/etc/httpd/conf.d/passenger.conf
En un Centos por ejemplo, cambiamos a ese usuario haciendo:
su redmine
y ejecutamos el comando svn list y ya debería de funcionar la conectividad entre ambos servidores y funcionar correctamente la pestaña repositorio del Redmine. Para otros repositorios como Git existirá un comando similar a svn list.