En un artículo anterior explicamos como podemos configurar manualmente tu proyecto de Azure DevOps para incluirlo en SonarCloud si no se detecta de forma automática. Pues bien, si añadimos manualmente un proyecto nos encontramos con otro problema. Tras configurar la pipeline de Azure para que Sonar analice el código, este se analizará correctamente pero los comentarios no aparecerán en tu Pull Request. Es decir, si navegas a Sonar verás todos los problemas de smell code, cobertura de test, etc; sin embargo dentro de tu ciclo de integración continua en Azure DevOps no verás nada de esto y por tanto las PR no se pararán automáticamente hasta corregir los errores detectados.
Si bien esto se puede corregir con revisiones manuales en Sonar para solicitar a los diferentes desarrolladores que mejoren la calidad del código, realmente no es una solución óptima. Primero porque se pueden pasar cosas por alto, segundo porque supondría que el team leader es un cuello de botella y tercero, probablemente se subirían cosas incorrectas a la rama develop, siendo mucho más complejo y costoso de arreglar.
Sonarcloud - Origen del problema
Cuando Sonar Cloud es capaz de detectar un proyecto de forma automática y sigues las instrucciones indicadas para añadirlo al sistema de análisis, lo que internamente hace es dos cosas:
- Añadir y configurar el proyecto para análisis
- Configurar los decoradores de PR
Si no configuramos el segundo punto el proyecto se analiza correctamente pero no se devuelve la información al sistema de pull request, por lo que, en nuestro caso, Azure DevOps, no se entera de qué ha pasado.
En nuestro artículo anterior solo especificamos el primer punto, vamos ahora con el segundo.
Solución
Para poder decorar tu PR en Azure DevOps desde Sonar Cloud necesitamos seguir dos pasos:
- Crear un personal access token en Azure DevOps
- Configurar el proyecto en SonarCloud
Crear el Personal Acess Token en Azure DevOps
Accede a tu Azure DevOps. En la esquina superior derecha accede a tus «User settings» y pincha en "Personal access tokens"
Crea un nuevo token dándole un nombre descriptivo y dándole permisos de "Read & Write" en "Code".
Copia el token y guárdatelo para luego. Importantísimo: Guárdalo en este momento ya que no podrás consultar el token.
Configurar el proyecto en SonarCloud
Accede en SonarCloud.io a la administración general de tu proyecto.
Acceder a la sección de Pull Requests
Selecciona «Azure DevOps Services» en provider
Pega el personal access token creado en Azure DevOps
Comprueba que funciona
Lanza una PR y si todo está bien configurado debería mostrarte ya el quality gate de tu PR y deberías poder ver los comentarios de Sonar.