Actualmente, el plugin SCM Activity de SonarQube no soporta oficialmente Team Foundation Server (TFS), por lo que, hasta ahora, era imposible acceder a este repositorio para extraer la información que SCM Activity puede proporcionar. En este artículo explicamos cómo poder extraer la información necesaria sobre los commits, utilizando GitTfs. Esta herramienta es un puente entre nuestro servidor TFS y SCM Activity Plugin, y para utilizarlo debemos seguir los siguientes pasos.
La instalación, configuración y uso de GitTfs se ha realizado en sistemas operativos Windows
Instalación de Git
- Descargar Git de la página oficial
- Con la instalación por defecto funciona correctamente
- Añadir a la variable de entorno PATH varias rutas
- <Git path>\bin
- <Git path>\cmd

Para realizar esta tarea existen dos formas de instalar esta herramienta, desde la página oficial o a través de la aplicación Chocolatey. Ambas formas de instalar GitTfs son muy sencillas, por lo que utilizar una u otra dependerá de nuestras preferencias. En excentia hemos probado las dos opciones y hemos conseguido que la herramienta funcione a la perfección en ambas. Explicamos las distintas opciones a continuación:
- Descargar GitTfs y descomprimirlo en una carpeta
- Añadir a la variable de entorno PATH la ruta donde se ha descomprimido
- <GitTfs path>
Para quien no conozca esta aplicación, Chocolatey es un gestor de paquetes similar a apt-get de Linux, pero pensado para Windows.
Si queremos utilizar este sistema debemos seguir los siguientes pasos:
- Instalar Chocolatey desde la página oficial (http://chocolatey.org/) o ejecutar el siguiente comando desde nuestra consola:
- Una vez instalado Chocolatey, instalaremos GitTfs Chocolatey package como indica en la página oficial (http://chocolatey.org/packages/gittfs) o ejecutar el siguiente comando desde nuestra consola:
Utilización de GitTfs
Lo primero que se debe hacer es clonar nuestro repositorio TFS en el directorio deseado. Para ello, debemos ejecutar desde línea de comandos la siguiente instrucción desde la línea de comandos:
git tfs clone <serverPath> <projectPath> <localPath> -u=<username> -p=<password>
Aquí tienes un ejemplo:
git tfs clone http://123.45.67.89:8080/tfs $/GlobalProject/Project C:\TfsRepository\GlobalProject\Project -u=user -p=password
Una vez hecho esto, cada vez que haya un nuevo commit en el repositorio, nosotros también querremos tener este nuevo cambio, por lo que deberemos actualizar a la última versión. Para ello, haremos un pull, para que así solo se descarguen los últimos commits realizados en el repositorio. Ejecutaremos desde línea de comandos la siguiente instrucción:
cd <localPath>
git tfs pull
Aquí tienes un ejemplo:
cd C:\TfsRepository\GlobalProject\Project
git tfs pull
Si seguimos todos estos pasos, tendremos un repositorio TFS sincronizado en Git para poder realizar los análisis y extraer la información de los desarrolladores, algo que hasta ahora no podíamos hacer.
Análisis del proyecto
Si vamos a realizar el análisis desde el directorio en el que tenemos el repositorio de Git, sonar-runner reconocerá el tipo de control de versiones utilizado y tan solo deberemos añadir los parámetros sonar.scm.enabled y sonar.scm-stats.enabled y asignarlos a true
Aquí tienes un ejemplo:
sonar.scm-stats.enabled=true
Por último, incluimos una serie de enlaces que pueden resultar de utilidad para completar y complementar la información de este artículo:
