Ejecución de inspecciones de IntelliJ desde la integración continua
Ejecución de inspecciones de IntelliJ desde la integración continua
IntelliJ IDEA ofrece funcionalidades para ayudar a mejorar nuestra codificación, dentro del IDE, mediante intenciones mientras escribimos código. Las intenciones pueden utilizarse por lotes para inspeccionar patrones de código en todo el código fuente, e incluso extenderse al análisis desde la línea de comandos o añadirse a la integración continua. Esta publicación cubre la funcionalidad estándar de IntelliJ y su ampliación con intenciones personalizadas creadas en Sensei.
Inspecciones de IntelliJ
La función de inspecciones de IntelliJ impulsa la visualización de muchos de los errores que se notifican dinámicamente en el IDE al programar, por ejemplo:
- detectar clases abstractas que pueden convertirse en interfaces,
- identificar campos de clase redundantes que pueden ser locales,
- advertir sobre el uso de métodos obsoletos,
- etc.
Estas inspecciones resaltan el código que coincide en el IDE como acciones de intención, que a menudo tienen una corrección rápida asociada.

El resaltado en tiempo real del IDE cuando el código coincide con una inspección puede ayudarnos a mejorar nuestra codificación de forma dinámica. Tras identificar el problema en el código, utilizar las acciones de intención de IntelliJ para corregir rápidamente el código puede reforzar mejores patrones.
Perfil de inspecciones
Las inspecciones pueden ejecutarse por lotes desde el IDE, desde la línea de comandos o en un proceso de integración continua.
La clave para trabajar con las inspecciones de IntelliJ por lotes es el uso de un perfil de inspecciones.
IntelliJ tiene dos perfiles de inspección predeterminados: uno almacenado en el proyecto y otro almacenado en el IDE.
Se pueden crear nuevos perfiles de inspección para configurar complementos o casos de uso específicos, por ejemplo:
- Ejecutar solo el análisis en tiempo real de Checkstyle
- Ejecutar un conjunto específico de reglas de Sensei
- Ejecutar las comprobaciones HTML
Las inspecciones de un perfil pueden habilitarse o deshabilitarse desde las preferencias de IntelliJ. El cuadro de diálogo de preferencias también es una forma sencilla de conocer la gama de inspecciones disponibles.

El icono de "herramienta" le permite duplicar un perfil y crear uno nuevo para recopilar un conjunto específico de reglas.

Ejecución de un perfil de inspección en el IDE
Los perfiles de inspección se pueden ejecutar desde el IDE utilizando el menú `Analyze \ Inspect Code...`.

La funcionalidad Analizar le permite controlar el alcance sobre el que se ejecutará la Inspección, por ejemplo, todo el proyecto, incluyendo o excluyendo fuentes de prueba, o sobre un conjunto específico de archivos.

También puede gestionar los Perfiles de Inspección desde aquí para crear o configurar un perfil en particular.
Al hacer clic en [OK] en el cuadro de diálogo “Especificar alcance de inspección”, IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil dentro del alcance definido.
IntelliJ mostrará los resultados de la ejecución de las inspecciones en la pestaña `Resultados de la inspección`.

El Sensei plugin de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para que el uso de estas recetas personalizadas sea tan natural como las Acciones de Intención de IntelliJ. Esto significa que se cargan en IntelliJ como Inspecciones y pueden agruparse, habilitarse y deshabilitarse mediante Perfiles de Inspección. Crear un Perfil de Inspección personalizado y utilizar la funcionalidad Analizar Inspeccionar Código es la forma recomendada de ejecutar recetas de Sensei de forma masiva en un proyecto.
Ejecución de un Perfil de Inspección desde la línea de comandos
IntelliJ tiene la capacidad de ejecutar inspecciones desde la línea de comandos, tal como lo documenta JetBrains:
- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html
Utilizo principalmente macOS y puedo ejecutar una única instancia de IntelliJ desde la línea de comandos con:
open -na "IntelliJ IDEA CE.app"
Para facilitar la ejecución, añado esto a un script de comandos de shell.
vi /usr/local/bin/idea
El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.
#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"
Luego hice que esto fuera ejecutable para simplificar el proceso de inspección desde la línea de comandos.
chmod 755 /usr/local/bin/idea
La documentación oficial de IntelliJ describe la forma general del comando de inspección como:
idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>
En la práctica, especifico las rutas completas y no necesito ninguna opción:
idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results
Esto ejecuta todas las inspecciones que añadí a `senseiprofile` y genera los resultados en la carpeta `scan-results`.

Visualización de los resultados de la inspección
Podemos generar estos informes desde la integración continua, como veremos más adelante.
También podemos verlos dentro del propio IntelliJ usando la función `Analyse \ View Offline Inspection Results…`.

Esto cargará los resultados en la pestaña `Inspection Results`.

Esto está documentado oficialmente en el sitio de JetBrains:
- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results
Esto podría utilizarse durante un proceso de revisión de código si la ejecución desde la línea de comandos se incorporó a un proceso de integración continua y los revisores desean comprobar el contexto completo del código fuente de cualquiera de las entradas de los resultados de la inspección.
Perfiles de inspección en la integración continua
Al añadir la inspección por línea de comandos a la integración continua, lo ideal es que el informe se genere automáticamente, y disponemos de varias opciones para ello.
TeamCity ofrece soporte nativo para perfiles de inspección en la integración continua.
- https://www.jetbrains.com/help/teamcity/inspections.html
El plugin Warnings NG de Jenkins admite la salida de línea de comandos de las inspecciones de IntelliJ como uno de los formatos de informe.
- https://github.com/jenkinsci/warnings-ng-plugin
- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md
Existen proyectos comunitarios como `idea CLI Inspector` para permitir el uso de perfiles de inspección en otras herramientas de CI, por ejemplo:
- https://github.com/bentolor/idea-cli-inspector
El futuro de los perfiles de inspección en los procesos de CI parece aún más prometedor con la introducción del proyecto Qodana de JetBrains. El proyecto Qodana es una versión "headless" (sin interfaz gráfica) de IntelliJ que cuenta con acciones oficiales de GitHub e imágenes de Docker.
- https://github.com/JetBrains/Qodana
Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei lo está supervisando para que se convierta en una plataforma oficialmente compatible para ejecutar reglas de Sensei como parte de la integración continua.
Resumen
Las Intention Actions nos permiten reforzar patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores al programar.
Los Inspection Profiles permiten agruparlos en perfiles que pueden ejecutarse por lotes mediante la acción Analizar e inspeccionar código. Esto resulta útil si detectamos un patrón y queremos verificar si lo hemos pasado por alto en otras partes del código.
Los Inspection Profiles pueden ejecutarse desde la línea de comandos e incluso integrarse en procesos de integración continua, lo que respalda un modelo de "confiar, pero verificar" para detectar cualquier descuido accidental.
Todo lo anterior es una funcionalidad integrada en IntelliJ, y JetBrains está mejorando sus procesos de integración continua con la introducción de Qodana.
Las recetas de Sensei se cargan en IntelliJ para actuar como Intention Actions nativas y agruparse en Inspection Profiles, permitiendo la verificación por lotes mediante Inspect Code y la integración continua a través de la funcionalidad oficial de línea de comandos de JetBrains.
---
Puedes instalar Sensei desde IntelliJ usando "Preferences \ Plugins" (Mac) o "Settings \ Plugins" (Windows) y buscando "sensei secure code".
Si quieres probar a ejecutar un proyecto en IntelliJ desde la línea de comandos, el proyecto utilizado en este artículo se encuentra en el repositorio `sensei-blog-examples` de la cuenta de GitHub de Secure Code Warrior. Un ejercicio para el lector es crear un perfil que ejecute solo las reglas de Sensei. ¡Pruébalo!
https://github.com/securecodewarrior/sensei-blog-examples
Controle el desarrollo impulsado por IA antes de su lanzamiento
Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).
Explorar más blogs
Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

Una cultura de seguridad: cómo Sage creó su programa de defensores
Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores
La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro
IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial
Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Habilitador 8: Branding de su programa
Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.
.avif)
Cada empleado está ahora en la primera línea de la ciberseguridad de la IA
El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.
Proteja el desarrollo basado en IA antes de su lanzamiento
Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.