
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 funciones para ayudar a mejorar nuestra codificación, dentro del IDE cuando escribimos código como Intentions. Las intenciones se pueden usar por lotes para inspeccionar el código en busca de patrones en todo el código fuente e incluso se pueden utilizar para analizar la línea de comandos o añadirlas a la integración continua. En este artículo se describe la funcionalidad lista para usar de IntelliJ y cómo ampliarla con las intenciones personalizadas creadas en Sensei.
Inspecciones de IntelliJ
La función de inspecciones de IntelliJ permite mostrar muchos de los errores que se notifican de forma dinámica en el IDE al codificar, p. ej.
- detectar clases abstractas que se pueden convertir en interfaces,
- identificar campos de clase redundantes que pueden ser locales,
- advertencia 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 un QuickFix asociado.

El IDE en tiempo real que resalta 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, usar las acciones de intención de IntelliJ para corregir rápidamente el código puede reforzar mejores patrones.
Perfil de inspecciones
Las inspecciones se pueden ejecutar por lotes desde el IDE y 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 en el IDE.
Se pueden crear nuevos perfiles de inspección para configurar complementos o casos de uso específicos, p. ej.
- Ejecute solo el escaneo en tiempo real de Checkstyle
- Ejecuta un conjunto específico de reglas de Sensei
- Ejecute las comprobaciones de HTML
Las inspecciones de un perfil se pueden habilitar o deshabilitar desde las Preferencias de IntelliJ. El cuadro de diálogo de preferencias también es una manera fácil de conocer la gama de inspecciones disponibles.

El icono de «herramienta» te 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 mediante el menú `Analizar\ Inspeccionar código... `.

La función de análisis le permite controlar el alcance en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluidas o excluidas las fuentes de prueba, o contra un conjunto específico de archivos.

También puede administrar los perfiles de inspección desde aquí para crear o configurar un perfil en particular.
Al hacer clic en [Aceptar] en el cuadro de diálogo «Especificar el alcance de la inspección», IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en todo el alcance definido.
IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña «Resultados de la inspección».

El Sensei El complemento de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las IntelliJ Intention Actions. Esto significa que se cargan en IntelliJ como inspecciones y se pueden agrupar, habilitar y deshabilitar mediante los perfiles de inspección. La forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto es crear un perfil de inspección personalizado y, a continuación, utilizar la funcionalidad de analizar el código de inspección.
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 y 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 sola instancia de IntelliJ desde la línea de comandos con:
abrir -na «IntelliJ IDEA CE.app»
Para facilitar la ejecución, lo agrego a un script de comando de shell.
a través de /usr/local/bin/idea
El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.
#! /bin/sh
abrir -na «IntelliJ IDEA CE.app» --args «$@»
Luego hice este ejecutable para poder simplificar el proceso de inspección de la línea de comandos.
chmod 755/usr/local/bin/idea
Los documentos oficiales de intellij describen la forma general del comando de inspección de la siguiente manera:
inspección de ideas <project><inspection-profile><output></output></inspection-profile></project>
[<options>]</options>
En la práctica, califico completamente las rutas 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 he añadido al `senseiprofile` e informa de los resultados en la carpeta `scan-results`.

Ver los resultados de la inspección
Podemos informar de estos resultados desde la Integración Continua, como veremos más adelante.
También podemos verlos dentro del propio IntelliJ mediante la función `Analizar\ Ver los resultados de la inspección fuera de línea... `.

Esto cargará los resultados en la pestaña «Resultados de la inspección».

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 usarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporó a un proceso de integración continua y los revisores quisieran comprobar el contexto fuente completo de cualquiera de las entradas de resultados de la inspección.
Perfiles de inspección en integración continua
Al agregar la inspección de línea de comandos a Continuous Integration, lo ideal es que se genere un informe automáticamente y tenemos varias opciones disponibles.
TeamCity ofrece soporte listo para usar para perfiles de inspección en integración continua.
- https://www.jetbrains.com/help/teamcity/inspections.html
El complemento Jenkins Warnings NG admite la salida de línea de comandos de IntelliJ Inspections 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 apoyar el uso de perfiles de inspección en otras herramientas de CI, p. ej.
- https://github.com/bentolor/idea-cli-inspector
El futuro de los perfiles de inspección en un proceso de CI parece aún más prometedor con la introducción del proyecto Qodana de JetBrains. El proyecto Qodana es una versión electrónica de IntelliJ con imágenes oficiales de Github Actions y Docker.
- https://github.com/JetBrains/Qodana
Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei la está supervisando para que se convierta en una plataforma con soporte oficial para ejecutar las reglas de Sensei como parte de la integración continua.
Resumen
Las acciones de intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.
Los perfiles de inspección nos permiten recopilarlos en perfiles que pueden ejecutarse por lotes como una acción de análisis e inspección del código. Esto puede resultar útil si nos encontramos con un patrón y queremos comprobar si lo hemos omitido en alguna otra parte de nuestro código.
Los perfiles de inspección se pueden ejecutar desde la línea de comandos e incluso se pueden incorporar a los procesos de integración continua, lo que permite un modelo de «confiar, pero verificar» y detectar cualquier error accidental.
Todo lo anterior está integrado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de integración continua con la introducción de Qodana.
Las recetas de Sensei se cargan en IntelliJ para que actúen como acciones intencionales nativas y se recopilan en perfiles de inspección para permitir la verificación por lotes mediante el soporte de integración continua y código de inspección que proporciona la función oficial de ejecución de línea de comandos de JetBrains.
---
Puede instalar Sensei desde IntelliJ mediante «Preferencias\ Plugins» (Mac) o «Configuración\ Plugins» (Windows) y, a continuación, buscar «código seguro de sensei».
Si quieres intentar ejecutar un proyecto en IntelliJ desde la línea de comandos, puedes encontrar el proyecto utilizado en esta publicación en el repositorio `sensei-blog-examples` de la cuenta de GitHub de Secure Code Warrior. Un ejercicio para el lector consiste en crear un perfil que siga únicamente las reglas de Sensei. Pruébalo:
https://github.com/securecodewarrior/sensei-blog-examples
Pour plus d'informations sur Sensei
Aprenda a ejecutar las acciones de intención de Sensei e IntelliJ en modo por lotes como inspecciones dentro del IDE, desde la línea de comandos y en integración continua.
Alan Richardson a plus de vingt ans d'expérience professionnelle dans le domaine des technologies de l'information. Il a travaillé en tant que développeur et à tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs à l'adresse Secure Code Warrior, il travaille directement avec les équipes pour améliorer le développement de codes sécurisés de qualité. Alan est l'auteur de quatre livres, dont "Dear Evil Tester" et "Java For Testers". Alan a également créé une formation en ligne courses pour aider les gens à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses écrits et ses vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.Alan Richardson a plus de vingt ans d'expérience professionnelle dans le domaine des technologies de l'information. Il a travaillé en tant que développeur et à tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs à l'adresse Secure Code Warrior, il travaille directement avec les équipes pour améliorer le développement de codes sécurisés de qualité. Alan est l'auteur de quatre livres, dont "Dear Evil Tester" et "Java For Testers". Alan a également créé une formation en ligne courses pour aider les gens à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses écrits et ses vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.
Ejecución de inspecciones de IntelliJ desde la integración continua
IntelliJ IDEA ofrece funciones para ayudar a mejorar nuestra codificación, dentro del IDE cuando escribimos código como Intentions. Las intenciones se pueden usar por lotes para inspeccionar el código en busca de patrones en todo el código fuente e incluso se pueden utilizar para analizar la línea de comandos o añadirlas a la integración continua. En este artículo se describe la funcionalidad lista para usar de IntelliJ y cómo ampliarla con las intenciones personalizadas creadas en Sensei.
Inspecciones de IntelliJ
La función de inspecciones de IntelliJ permite mostrar muchos de los errores que se notifican de forma dinámica en el IDE al codificar, p. ej.
- detectar clases abstractas que se pueden convertir en interfaces,
- identificar campos de clase redundantes que pueden ser locales,
- advertencia 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 un QuickFix asociado.

El IDE en tiempo real que resalta 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, usar las acciones de intención de IntelliJ para corregir rápidamente el código puede reforzar mejores patrones.
Perfil de inspecciones
Las inspecciones se pueden ejecutar por lotes desde el IDE y 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 en el IDE.
Se pueden crear nuevos perfiles de inspección para configurar complementos o casos de uso específicos, p. ej.
- Ejecute solo el escaneo en tiempo real de Checkstyle
- Ejecuta un conjunto específico de reglas de Sensei
- Ejecute las comprobaciones de HTML
Las inspecciones de un perfil se pueden habilitar o deshabilitar desde las Preferencias de IntelliJ. El cuadro de diálogo de preferencias también es una manera fácil de conocer la gama de inspecciones disponibles.

El icono de «herramienta» te 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 mediante el menú `Analizar\ Inspeccionar código... `.

La función de análisis le permite controlar el alcance en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluidas o excluidas las fuentes de prueba, o contra un conjunto específico de archivos.

También puede administrar los perfiles de inspección desde aquí para crear o configurar un perfil en particular.
Al hacer clic en [Aceptar] en el cuadro de diálogo «Especificar el alcance de la inspección», IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en todo el alcance definido.
IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña «Resultados de la inspección».

El Sensei El complemento de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las IntelliJ Intention Actions. Esto significa que se cargan en IntelliJ como inspecciones y se pueden agrupar, habilitar y deshabilitar mediante los perfiles de inspección. La forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto es crear un perfil de inspección personalizado y, a continuación, utilizar la funcionalidad de analizar el código de inspección.
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 y 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 sola instancia de IntelliJ desde la línea de comandos con:
abrir -na «IntelliJ IDEA CE.app»
Para facilitar la ejecución, lo agrego a un script de comando de shell.
a través de /usr/local/bin/idea
El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.
#! /bin/sh
abrir -na «IntelliJ IDEA CE.app» --args «$@»
Luego hice este ejecutable para poder simplificar el proceso de inspección de la línea de comandos.
chmod 755/usr/local/bin/idea
Los documentos oficiales de intellij describen la forma general del comando de inspección de la siguiente manera:
inspección de ideas <project><inspection-profile><output></output></inspection-profile></project>
[<options>]</options>
En la práctica, califico completamente las rutas 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 he añadido al `senseiprofile` e informa de los resultados en la carpeta `scan-results`.

Ver los resultados de la inspección
Podemos informar de estos resultados desde la Integración Continua, como veremos más adelante.
También podemos verlos dentro del propio IntelliJ mediante la función `Analizar\ Ver los resultados de la inspección fuera de línea... `.

Esto cargará los resultados en la pestaña «Resultados de la inspección».

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 usarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporó a un proceso de integración continua y los revisores quisieran comprobar el contexto fuente completo de cualquiera de las entradas de resultados de la inspección.
Perfiles de inspección en integración continua
Al agregar la inspección de línea de comandos a Continuous Integration, lo ideal es que se genere un informe automáticamente y tenemos varias opciones disponibles.
TeamCity ofrece soporte listo para usar para perfiles de inspección en integración continua.
- https://www.jetbrains.com/help/teamcity/inspections.html
El complemento Jenkins Warnings NG admite la salida de línea de comandos de IntelliJ Inspections 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 apoyar el uso de perfiles de inspección en otras herramientas de CI, p. ej.
- https://github.com/bentolor/idea-cli-inspector
El futuro de los perfiles de inspección en un proceso de CI parece aún más prometedor con la introducción del proyecto Qodana de JetBrains. El proyecto Qodana es una versión electrónica de IntelliJ con imágenes oficiales de Github Actions y Docker.
- https://github.com/JetBrains/Qodana
Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei la está supervisando para que se convierta en una plataforma con soporte oficial para ejecutar las reglas de Sensei como parte de la integración continua.
Resumen
Las acciones de intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.
Los perfiles de inspección nos permiten recopilarlos en perfiles que pueden ejecutarse por lotes como una acción de análisis e inspección del código. Esto puede resultar útil si nos encontramos con un patrón y queremos comprobar si lo hemos omitido en alguna otra parte de nuestro código.
Los perfiles de inspección se pueden ejecutar desde la línea de comandos e incluso se pueden incorporar a los procesos de integración continua, lo que permite un modelo de «confiar, pero verificar» y detectar cualquier error accidental.
Todo lo anterior está integrado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de integración continua con la introducción de Qodana.
Las recetas de Sensei se cargan en IntelliJ para que actúen como acciones intencionales nativas y se recopilan en perfiles de inspección para permitir la verificación por lotes mediante el soporte de integración continua y código de inspección que proporciona la función oficial de ejecución de línea de comandos de JetBrains.
---
Puede instalar Sensei desde IntelliJ mediante «Preferencias\ Plugins» (Mac) o «Configuración\ Plugins» (Windows) y, a continuación, buscar «código seguro de sensei».
Si quieres intentar ejecutar un proyecto en IntelliJ desde la línea de comandos, puedes encontrar el proyecto utilizado en esta publicación en el repositorio `sensei-blog-examples` de la cuenta de GitHub de Secure Code Warrior. Un ejercicio para el lector consiste en crear un perfil que siga únicamente las reglas de Sensei. Pruébalo:
https://github.com/securecodewarrior/sensei-blog-examples
Pour plus d'informations sur Sensei
Ejecución de inspecciones de IntelliJ desde la integración continua
IntelliJ IDEA ofrece funciones para ayudar a mejorar nuestra codificación, dentro del IDE cuando escribimos código como Intentions. Las intenciones se pueden usar por lotes para inspeccionar el código en busca de patrones en todo el código fuente e incluso se pueden utilizar para analizar la línea de comandos o añadirlas a la integración continua. En este artículo se describe la funcionalidad lista para usar de IntelliJ y cómo ampliarla con las intenciones personalizadas creadas en Sensei.
Inspecciones de IntelliJ
La función de inspecciones de IntelliJ permite mostrar muchos de los errores que se notifican de forma dinámica en el IDE al codificar, p. ej.
- detectar clases abstractas que se pueden convertir en interfaces,
- identificar campos de clase redundantes que pueden ser locales,
- advertencia 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 un QuickFix asociado.

El IDE en tiempo real que resalta 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, usar las acciones de intención de IntelliJ para corregir rápidamente el código puede reforzar mejores patrones.
Perfil de inspecciones
Las inspecciones se pueden ejecutar por lotes desde el IDE y 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 en el IDE.
Se pueden crear nuevos perfiles de inspección para configurar complementos o casos de uso específicos, p. ej.
- Ejecute solo el escaneo en tiempo real de Checkstyle
- Ejecuta un conjunto específico de reglas de Sensei
- Ejecute las comprobaciones de HTML
Las inspecciones de un perfil se pueden habilitar o deshabilitar desde las Preferencias de IntelliJ. El cuadro de diálogo de preferencias también es una manera fácil de conocer la gama de inspecciones disponibles.

El icono de «herramienta» te 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 mediante el menú `Analizar\ Inspeccionar código... `.

La función de análisis le permite controlar el alcance en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluidas o excluidas las fuentes de prueba, o contra un conjunto específico de archivos.

También puede administrar los perfiles de inspección desde aquí para crear o configurar un perfil en particular.
Al hacer clic en [Aceptar] en el cuadro de diálogo «Especificar el alcance de la inspección», IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en todo el alcance definido.
IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña «Resultados de la inspección».

El Sensei El complemento de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las IntelliJ Intention Actions. Esto significa que se cargan en IntelliJ como inspecciones y se pueden agrupar, habilitar y deshabilitar mediante los perfiles de inspección. La forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto es crear un perfil de inspección personalizado y, a continuación, utilizar la funcionalidad de analizar el código de inspección.
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 y 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 sola instancia de IntelliJ desde la línea de comandos con:
abrir -na «IntelliJ IDEA CE.app»
Para facilitar la ejecución, lo agrego a un script de comando de shell.
a través de /usr/local/bin/idea
El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.
#! /bin/sh
abrir -na «IntelliJ IDEA CE.app» --args «$@»
Luego hice este ejecutable para poder simplificar el proceso de inspección de la línea de comandos.
chmod 755/usr/local/bin/idea
Los documentos oficiales de intellij describen la forma general del comando de inspección de la siguiente manera:
inspección de ideas <project><inspection-profile><output></output></inspection-profile></project>
[<options>]</options>
En la práctica, califico completamente las rutas 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 he añadido al `senseiprofile` e informa de los resultados en la carpeta `scan-results`.

Ver los resultados de la inspección
Podemos informar de estos resultados desde la Integración Continua, como veremos más adelante.
También podemos verlos dentro del propio IntelliJ mediante la función `Analizar\ Ver los resultados de la inspección fuera de línea... `.

Esto cargará los resultados en la pestaña «Resultados de la inspección».

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 usarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporó a un proceso de integración continua y los revisores quisieran comprobar el contexto fuente completo de cualquiera de las entradas de resultados de la inspección.
Perfiles de inspección en integración continua
Al agregar la inspección de línea de comandos a Continuous Integration, lo ideal es que se genere un informe automáticamente y tenemos varias opciones disponibles.
TeamCity ofrece soporte listo para usar para perfiles de inspección en integración continua.
- https://www.jetbrains.com/help/teamcity/inspections.html
El complemento Jenkins Warnings NG admite la salida de línea de comandos de IntelliJ Inspections 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 apoyar el uso de perfiles de inspección en otras herramientas de CI, p. ej.
- https://github.com/bentolor/idea-cli-inspector
El futuro de los perfiles de inspección en un proceso de CI parece aún más prometedor con la introducción del proyecto Qodana de JetBrains. El proyecto Qodana es una versión electrónica de IntelliJ con imágenes oficiales de Github Actions y Docker.
- https://github.com/JetBrains/Qodana
Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei la está supervisando para que se convierta en una plataforma con soporte oficial para ejecutar las reglas de Sensei como parte de la integración continua.
Resumen
Las acciones de intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.
Los perfiles de inspección nos permiten recopilarlos en perfiles que pueden ejecutarse por lotes como una acción de análisis e inspección del código. Esto puede resultar útil si nos encontramos con un patrón y queremos comprobar si lo hemos omitido en alguna otra parte de nuestro código.
Los perfiles de inspección se pueden ejecutar desde la línea de comandos e incluso se pueden incorporar a los procesos de integración continua, lo que permite un modelo de «confiar, pero verificar» y detectar cualquier error accidental.
Todo lo anterior está integrado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de integración continua con la introducción de Qodana.
Las recetas de Sensei se cargan en IntelliJ para que actúen como acciones intencionales nativas y se recopilan en perfiles de inspección para permitir la verificación por lotes mediante el soporte de integración continua y código de inspección que proporciona la función oficial de ejecución de línea de comandos de JetBrains.
---
Puede instalar Sensei desde IntelliJ mediante «Preferencias\ Plugins» (Mac) o «Configuración\ Plugins» (Windows) y, a continuación, buscar «código seguro de sensei».
Si quieres intentar ejecutar un proyecto en IntelliJ desde la línea de comandos, puedes encontrar el proyecto utilizado en esta publicación en el repositorio `sensei-blog-examples` de la cuenta de GitHub de Secure Code Warrior. Un ejercicio para el lector consiste en crear un perfil que siga únicamente las reglas de Sensei. Pruébalo:
https://github.com/securecodewarrior/sensei-blog-examples
Pour plus d'informations sur Sensei

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez consulter le rapportVeuillez réserver une démonstration.Alan Richardson a plus de vingt ans d'expérience professionnelle dans le domaine des technologies de l'information. Il a travaillé en tant que développeur et à tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs à l'adresse Secure Code Warrior, il travaille directement avec les équipes pour améliorer le développement de codes sécurisés de qualité. Alan est l'auteur de quatre livres, dont "Dear Evil Tester" et "Java For Testers". Alan a également créé une formation en ligne courses pour aider les gens à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses écrits et ses vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.
Ejecución de inspecciones de IntelliJ desde la integración continua
IntelliJ IDEA ofrece funciones para ayudar a mejorar nuestra codificación, dentro del IDE cuando escribimos código como Intentions. Las intenciones se pueden usar por lotes para inspeccionar el código en busca de patrones en todo el código fuente e incluso se pueden utilizar para analizar la línea de comandos o añadirlas a la integración continua. En este artículo se describe la funcionalidad lista para usar de IntelliJ y cómo ampliarla con las intenciones personalizadas creadas en Sensei.
Inspecciones de IntelliJ
La función de inspecciones de IntelliJ permite mostrar muchos de los errores que se notifican de forma dinámica en el IDE al codificar, p. ej.
- detectar clases abstractas que se pueden convertir en interfaces,
- identificar campos de clase redundantes que pueden ser locales,
- advertencia 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 un QuickFix asociado.

El IDE en tiempo real que resalta 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, usar las acciones de intención de IntelliJ para corregir rápidamente el código puede reforzar mejores patrones.
Perfil de inspecciones
Las inspecciones se pueden ejecutar por lotes desde el IDE y 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 en el IDE.
Se pueden crear nuevos perfiles de inspección para configurar complementos o casos de uso específicos, p. ej.
- Ejecute solo el escaneo en tiempo real de Checkstyle
- Ejecuta un conjunto específico de reglas de Sensei
- Ejecute las comprobaciones de HTML
Las inspecciones de un perfil se pueden habilitar o deshabilitar desde las Preferencias de IntelliJ. El cuadro de diálogo de preferencias también es una manera fácil de conocer la gama de inspecciones disponibles.

El icono de «herramienta» te 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 mediante el menú `Analizar\ Inspeccionar código... `.

La función de análisis le permite controlar el alcance en el que se ejecutará la inspección, por ejemplo, todo el proyecto, incluidas o excluidas las fuentes de prueba, o contra un conjunto específico de archivos.

También puede administrar los perfiles de inspección desde aquí para crear o configurar un perfil en particular.
Al hacer clic en [Aceptar] en el cuadro de diálogo «Especificar el alcance de la inspección», IntelliJ ejecutará todas las inspecciones seleccionadas en el perfil en todo el alcance definido.
IntelliJ informará de los resultados de la ejecución de las inspecciones en la pestaña «Resultados de la inspección».

El Sensei El complemento de Secure Code Warrior le permite crear recetas personalizadas de coincidencia de código. Sensei se integra estrechamente con IntelliJ para hacer que estas recetas personalizadas sean tan naturales de usar como las IntelliJ Intention Actions. Esto significa que se cargan en IntelliJ como inspecciones y se pueden agrupar, habilitar y deshabilitar mediante los perfiles de inspección. La forma recomendada de ejecutar las recetas de Sensei de forma masiva en un proyecto es crear un perfil de inspección personalizado y, a continuación, utilizar la funcionalidad de analizar el código de inspección.
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 y 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 sola instancia de IntelliJ desde la línea de comandos con:
abrir -na «IntelliJ IDEA CE.app»
Para facilitar la ejecución, lo agrego a un script de comando de shell.
a través de /usr/local/bin/idea
El contenido del script proviene de la documentación oficial proporcionada por IntelliJ.
#! /bin/sh
abrir -na «IntelliJ IDEA CE.app» --args «$@»
Luego hice este ejecutable para poder simplificar el proceso de inspección de la línea de comandos.
chmod 755/usr/local/bin/idea
Los documentos oficiales de intellij describen la forma general del comando de inspección de la siguiente manera:
inspección de ideas <project><inspection-profile><output></output></inspection-profile></project>
[<options>]</options>
En la práctica, califico completamente las rutas 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 he añadido al `senseiprofile` e informa de los resultados en la carpeta `scan-results`.

Ver los resultados de la inspección
Podemos informar de estos resultados desde la Integración Continua, como veremos más adelante.
También podemos verlos dentro del propio IntelliJ mediante la función `Analizar\ Ver los resultados de la inspección fuera de línea... `.

Esto cargará los resultados en la pestaña «Resultados de la inspección».

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 usarse durante un proceso de revisión de código si la ejecución de la línea de comandos se incorporó a un proceso de integración continua y los revisores quisieran comprobar el contexto fuente completo de cualquiera de las entradas de resultados de la inspección.
Perfiles de inspección en integración continua
Al agregar la inspección de línea de comandos a Continuous Integration, lo ideal es que se genere un informe automáticamente y tenemos varias opciones disponibles.
TeamCity ofrece soporte listo para usar para perfiles de inspección en integración continua.
- https://www.jetbrains.com/help/teamcity/inspections.html
El complemento Jenkins Warnings NG admite la salida de línea de comandos de IntelliJ Inspections 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 apoyar el uso de perfiles de inspección en otras herramientas de CI, p. ej.
- https://github.com/bentolor/idea-cli-inspector
El futuro de los perfiles de inspección en un proceso de CI parece aún más prometedor con la introducción del proyecto Qodana de JetBrains. El proyecto Qodana es una versión electrónica de IntelliJ con imágenes oficiales de Github Actions y Docker.
- https://github.com/JetBrains/Qodana
Qodana se encuentra actualmente en fase beta, pero el equipo de Sensei la está supervisando para que se convierta en una plataforma con soporte oficial para ejecutar las reglas de Sensei como parte de la integración continua.
Resumen
Las acciones de intención nos permiten reforzar los patrones de codificación y corregirlos rápidamente en el IDE cuando cometemos errores durante la codificación.
Los perfiles de inspección nos permiten recopilarlos en perfiles que pueden ejecutarse por lotes como una acción de análisis e inspección del código. Esto puede resultar útil si nos encontramos con un patrón y queremos comprobar si lo hemos omitido en alguna otra parte de nuestro código.
Los perfiles de inspección se pueden ejecutar desde la línea de comandos e incluso se pueden incorporar a los procesos de integración continua, lo que permite un modelo de «confiar, pero verificar» y detectar cualquier error accidental.
Todo lo anterior está integrado en la funcionalidad de IntelliJ y JetBrains está mejorando su proceso de integración continua con la introducción de Qodana.
Las recetas de Sensei se cargan en IntelliJ para que actúen como acciones intencionales nativas y se recopilan en perfiles de inspección para permitir la verificación por lotes mediante el soporte de integración continua y código de inspección que proporciona la función oficial de ejecución de línea de comandos de JetBrains.
---
Puede instalar Sensei desde IntelliJ mediante «Preferencias\ Plugins» (Mac) o «Configuración\ Plugins» (Windows) y, a continuación, buscar «código seguro de sensei».
Si quieres intentar ejecutar un proyecto en IntelliJ desde la línea de comandos, puedes encontrar el proyecto utilizado en esta publicación en el repositorio `sensei-blog-examples` de la cuenta de GitHub de Secure Code Warrior. Un ejercicio para el lector consiste en crear un perfil que siga únicamente las reglas de Sensei. Pruébalo:
https://github.com/securecodewarrior/sensei-blog-examples
Pour plus d'informations sur Sensei
Table des matières
Alan Richardson a plus de vingt ans d'expérience professionnelle dans le domaine des technologies de l'information. Il a travaillé en tant que développeur et à tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs à l'adresse Secure Code Warrior, il travaille directement avec les équipes pour améliorer le développement de codes sécurisés de qualité. Alan est l'auteur de quatre livres, dont "Dear Evil Tester" et "Java For Testers". Alan a également créé une formation en ligne courses pour aider les gens à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses écrits et ses vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.TéléchargerRessources pour débuter
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu de pointe évolue constamment afin de s'adapter au paysage changeant du développement logiciel, en tenant compte de votre rôle. Nous proposons des thèmes allant de l'IA à l'injection XQuery pour différents postes, des architectes et ingénieurs aux chefs de produit et responsables de l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par thème et par fonction.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour débuter
Cybermon est de retour : les missions IA de Beat the Boss sont désormais disponibles à la demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année chez SCW. Mettez en œuvre des défis de sécurité avancés basés sur l'IA et le LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénierie peuvent se préparer grâce à des pratiques de conception sécurisées, à la prévention des vulnérabilités et au développement des compétences des développeurs.
Facilitateur 1 : Critères de réussite définis et mesurables
Le catalyseur n° 1 inaugure notre série en 10 parties intitulée « Les catalyseurs de la réussite », qui montre comment relier la codification sécurisée aux résultats commerciaux, tels que la réduction des risques et la rapidité d'atteinte de la maturité du programme à long terme.




%20(1).avif)
.avif)
