Como hacer code review automático con Sonarqube ?

Como hacer code review automático con Sonarqube ?

No estoy diciendo que la revisión técnica-humana no sirva, pero se trata de eliminar cuellos de botellas y optimizar recursos. NI HABLAR cuando no dispones de los recursos suficientes !

Y cuando dispones de los recursos suficientes... te trata de ser realmente ágil, desde 2 puntos fundamentales:

1. De cuanto recurso dispones para hacer code review en un GRAN proyecto ?

2. Seamos realmente ágiles, e incorporemos autogestión... o sea : "¡Hazte cargo del código que me estás entregando" !


La versión community de Sonarqube, analiza el código y te entrega los siguientes reportes:

1. Informe de Issues (Bugs, Vulnerabilidades, Code Smells)

2. Deuda Técnica

3. Cobertura de Pruebas (Test Coverage)

4. Duplicación de Código

5. Complejidad Ciclomática

6. Índice de Mantenibilidad

7. Calidad del Código Global

8. Historial de Análisis

9. Puertas de Calidad (Quality Gates)


Como trabajar con la version Community de Sonarqube ?

Para armar un proceso de revisión automática de código con SonarQube Community Edition, puedes seguir los siguientes pasos. Estos permiten integrar análisis estático de código en el ciclo de desarrollo, mejorando la calidad del software a medida que se codifica.

 1. Instalación y Configuración de SonarQube

- Instalar SonarQube: Descarga la edición comunitaria de SonarQube desde su sitio oficial. Puedes instalarlo en una máquina local o servidor dependiendo del uso esperado.

- Configurar el entorno: Instala Java y PostgreSQL (u otra base de datos compatible) si no están instalados. SonarQube requiere un entorno Java para correr.

- Iniciar SonarQube: Configura el archivo sonar.properties para ajustar el puerto y la conexión a la base de datos. Luego, inicias el servidor de SonarQube.

 2. Integración con el Repositorio de Código

Para que SonarQube analice el código, necesitas integrar los escaneos en el flujo de trabajo de tu repositorio.

- Instalar el Scanner de SonarQube: Este es el agente que ejecuta el análisis de código. Puedes instalar el SonarQube Scanner de manera local o dentro de tus pipelines de CI/CD.

  

  - Si usas Maven, Gradle u otro sistema de compilación, puedes integrar el plugin de SonarQube en esos sistemas.

  

- Configurar el proyecto: En el archivo sonar-project.properties del proyecto, debes configurar las propiedades mínimas:

sonar.projectKey=my_project_key

sonar.sources=.

sonar.host.url=http://localhost:9000

sonar.login=token_de_autenticacion


 3. Automatización con CI/CD

Para implementar revisiones automáticas en cada cambio o "commit", puedes integrar SonarQube con tu sistema de CI/CD como Jenkins, GitLab CI, GitHub Actions, etc.

 Ejemplo con Jenkins:

- Instalar el plugin de SonarQube en Jenkins.

- Configurar SonarQube en Jenkins (gestión de credenciales y URL de SonarQube).

- En un pipeline de Jenkins, agregar una etapa de análisis:

 

  pipeline {

      stages {

          stage('SonarQube Analysis') {

              steps {

                  script {

                      def scannerHome = tool 'SonarScanner'

                      withSonarQubeEnv('SonarQube') {

                          sh "${scannerHome}/bin/sonar-scanner"

                      }

                  }

              }

          }

      }

  }

 

 4. Definir Reglas de Calidad

Dentro de SonarQube, es importante que configures Quality Profiles y Quality Gates:

- Perfiles de Calidad: Define las reglas de análisis estático que deseas aplicar. SonarQube permite configurar un conjunto de reglas para varios lenguajes de programación.

- Puertas de Calidad (Quality Gates): Son reglas que determinan si un proyecto pasa o falla en el análisis (basado en cobertura de tests, bugs, vulnerabilidades, etc.). Configura estas reglas según los umbrales que consideres adecuados para tu proyecto.

 5. Monitoreo y Corrección de Issues

- Una vez que el análisis es ejecutado, SonarQube genera un reporte con información sobre bugs, vulnerabilidades, "code smells", y deuda técnica.

- En tu tablero de SonarQube, puedes ver todos estos problemas categorizados por severidad y prioridad.

- Integra los reportes con tu flujo de trabajo de desarrollo, para que los desarrolladores resuelvan los problemas identificados antes de continuar.

 6. Automatización del Feedback

- Configura notificaciones en SonarQube para que los desarrolladores reciban alertas automáticas cuando el análisis encuentre problemas críticos.

- Es útil también integrarlo con herramientas como Slack, Teams, o correos electrónicos para asegurar que los equipos estén informados de manera rápida.

 7. Integración con IDEs

SonarQube también ofrece plugins para varios IDEs como Eclipse, IntelliJ IDEA, y VS Code. Esto permite a los desarrolladores recibir feedback inmediato sobre problemas en el código sin esperar el análisis en CI/CD.

 

Mejores Prácticas:

- Ejecuciones frecuentes: Ejecuta el análisis en cada commit o pull request para detectar problemas lo antes posible.

- Mantén actualizado el SonarQube: Siempre usa la última versión compatible de SonarQube para asegurarte de que estés utilizando las reglas más actualizadas.

- Configura perfiles según proyecto: Personaliza los perfiles de calidad dependiendo de las necesidades específicas de cada proyecto (por ejemplo, proyectos más antiguos pueden requerir reglas más flexibles).

 Resumen

- Instala y configura SonarQube y su scanner.

- Integra el análisis de código en el flujo de trabajo de CI/CD.

- Define Quality Profiles y Quality Gates para mantener la calidad del código.

- Monitorea los resultados en el tablero de SonarQube y actúa sobre los issues detectados.


Inicia sesión para ver o añadir un comentario.

Otros usuarios han visto

Ver temas