Icônes SCW
héros bg sans séparateur
Blog

継続的インテグレーションによる IntelliJ インスペクションの実行

Monsieur Alan Richardson
Publié le 15 février 2021
Dernière mise à jour le 10 mars 2026

Exécuter les inspections IntelliJ à partir de l'intégration continue

IntelliJ IDEA offre des fonctionnalités pour aider à améliorer notre codage, au sein de l'IDE lorsque vous écrivez du code sous forme d'intentions. Les intentions peuvent être utilisées en batch pour inspecter le code à la recherche de modèles à travers la source et même s'étendre à l'analyse en ligne de commande ou être ajoutées à l'intégration continue. Cet article couvre les fonctionnalités d'IntelliJ et l'extension avec des Intentions personnalisées créées dans Sensei.


IntelliJ Inspections

La fonction Inspections d'IntelliJ permet d'afficher la plupart des erreurs qui sont signalées dynamiquement dans l'IDE lors du codage, par exemple.

  • détecter les classes abstraites qui peuvent être converties en interfaces,
  • l'identification des champs de classe redondants qui peuvent être locaux,
  • un avertissement concernant l'utilisation de méthodes obsolètes,
  • etc.


Ces inspections mettent en évidence le code qui correspond dans l'IDE à des actions d'intention qui ont souvent un correctif rapide associé.


Inspection des options d'utilisation de l'api obsolètes


La mise en évidence en temps réel par l'IDE lorsque le code correspond à une inspection peut nous aider à améliorer notre codage de manière dynamique. Après avoir identifié le problème dans le code, l'utilisation des actions d'intention d'IntelliJ pour corriger rapidement le code peut renforcer les meilleurs modèles.

Profil d'inspection

Les inspections peuvent être exécutées par lots à partir de l'IDE, de la ligne de commande ou dans le cadre d'un processus d'intégration continue.

La clé pour travailler avec les inspections IntelliJ en tant que lot est l'utilisation d'un profil d'inspection.

IntelliJ a deux profils d'inspection par défaut : un stocké dans le projet, et un stocké dans l'IDE.

De nouveaux profils d'inspection peuvent être créés pour configurer des plugins ou des cas d'utilisation spécifiques.

  • Exécutez uniquement l'analyse en temps réel de Checkstyle
  • Exécutez un ensemble spécifique de règles Sensei
  • Exécuter les contrôles HTML

Les inspections d'un profil peuvent être activées ou désactivées à partir des préférences d'IntelliJ. La boîte de dialogue Préférences est également un moyen facile de connaître la gamme d'inspections disponibles.


Inspections Usage de l'Api Marqué pour suppression


L'icône "outil" vous permet de dupliquer un profil et d'en créer un nouveau pour collecter un ensemble spécifique de règles.


Icône d'outil pour dupliquer un profil


Exécuter un profil d'inspection dans l'IDE

Les profils d'inspection peuvent être exécutés à partir de l'IDE en utilisant le menu `Analyze \ Inspect Code...`.


Exécution d'un profil d'inspection à l'aide du code d'analyse ou d'inspection


La fonctionnalité d'analyse vous permet de contrôler le champ d'application de l'inspection, par exemple l'ensemble du projet, y compris ou non les sources de test, ou un ensemble spécifique de fichiers. 


Spécifier l'étendue de l'inspection


Vous pouvez également gérer les profils d'inspection à partir d'ici pour créer ou configurer un profil particulier.


En cliquant sur [OK] dans la boîte de dialogue "Specify Inspection Scope", IntelliJ lancera toutes les inspections sélectionnées dans le profil dans le périmètre défini.

IntelliJ va rapporter les résultats de l'exécution des inspections dans l'onglet `Inspection Results`.


IntelliJ rapporte les résultats de l'exécution des inspections dans l'onglet Résultats de l'inspection


Le plugin Sensei de Secure Code Warrior vous permet de créer des recettes de correspondance de code personnalisées. Sensei s'intègre étroitement à IntelliJ pour rendre ces recettes personnalisées aussi naturelles à utiliser que les actions d'intention d'IntelliJ. Cela signifie qu'elles sont chargées dans IntelliJ en tant qu'inspections et qu'elles peuvent être regroupées, activées et désactivées à l'aide de profils d'inspection. La création d'un profil d'inspection personnalisé et l'utilisation de la fonctionnalité Analyze Inspect Code est la méthode recommandée pour exécuter les recettes Sensei en masse dans un projet.



Exécution d'un profil d'inspection à partir de la ligne de commande

IntelliJ a la capacité d'exécuter des inspections à partir de la ligne de commande comme documenté par JetBrains :

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


J'utilise principalement macOS, et je peux exécuter une seule instance d'IntelliJ à partir de la ligne de commande avec :

open -na "IntelliJ IDEA CE.app"


Pour faciliter l'exécution, je l'ajoute à un script de commande shell.

vi /usr/local/bin/idea


Le contenu du script provient de la documentation officielle fournie par IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Je l'ai ensuite rendu exécutable afin de simplifier le processus d'inspection en ligne de commande.

chmod 755 /usr/local/bin/idea


La documentation officielle d'intellij décrit la forme générale de la commande d'inspection comme suit :

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


Dans la pratique, je qualifie pleinement les chemins et je n'ai besoin d'aucune option :

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

Ceci exécute toutes les inspections que j'ai ajoutées au `senseiprofile` et rapporte les résultats dans le dossier `scan-results`.


Visualisation des résultats de l'inspection

Nous pouvons rapporter ces résultats à partir de l'intégration continue, comme nous le verrons plus loin.

Nous pouvons également les visualiser dans IntelliJ lui-même en utilisant la fonction "Analyse \Voir les résultats de l'inspection hors ligne...\N".


Analyser Visualiser les résultats d'inspection hors ligne


Les résultats sont alors chargés dans l'onglet "Résultats de l'inspection".


Chargement des résultats dans l'onglet Résultats de l'inspection


Ceci est officiellement documenté sur le site de JetBrains :

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Cela peut être utilisé au cours d'un processus d'examen du code si l'exécution de la ligne de commande a été incorporée dans un processus d'intégration continue et que les examinateurs souhaitent vérifier le contexte source complet de l'une des entrées du résultat de l'inspection.

Profils d'inspection dans l'intégration continue

Lorsque l'on ajoute l'inspection en ligne de commande à l'intégration continue, on souhaite idéalement qu'un rapport soit généré automatiquement et plusieurs options s'offrent à nous.

TeamCity offre une prise en charge immédiate des profils d'inspection dans l'intégration continue.

- https://www.jetbrains.com/help/teamcity/inspections.html


Le plugin Jenkins Warnings NG supporte la sortie de la ligne de commande d'IntelliJ Inspections comme l'un des formats de rapport.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Des projets communautaires comme `idea CLI Inspector` existent pour supporter l'utilisation des profils d'inspection dans d'autres outils de CI, c'est-à-dire

- https://github.com/bentolor/idea-cli-inspector


L'avenir des profils d'inspection dans un processus de CI semble encore plus prometteur avec l'introduction du projet Qodana de JetBrains. Le projet Qodana est une version headless d'IntelliJ avec des actions Github officielles et des images Docker.

- https://github.com/JetBrains/Qodana


Qodana est actuellement en version bêta, mais l'équipe de Sensei la surveille afin qu'elle devienne une plateforme officiellement prise en charge pour l'exécution des règles Sensei dans le cadre de l'intégration continue.


Résumé

Les actions d'intention nous permettent de renforcer les modèles de codage et de les corriger rapidement dans l'IDE lorsque nous commettons des erreurs pendant le codage.

Les profils d'inspection nous permettent de les rassembler en profils qui peuvent être exécutés par lots en tant qu'action d'analyse et d'inspection du code. Cela peut s'avérer utile si nous rencontrons un modèle et que nous voulons vérifier si nous ne l'avons pas oublié ailleurs dans notre code.

Les profils d'inspection peuvent être exécutés à partir de la ligne de commande et même incorporés dans les processus d'intégration continue, ce qui permet d'appliquer le modèle "faire confiance, mais vérifier" et de détecter tout dérapage accidentel.

Tout ce qui précède est intégré dans les fonctionnalités d'IntelliJ et JetBrains améliore son processus d'intégration continue avec l'introduction de Qodana.


Sensei Les recettes sont chargées dans IntelliJ pour agir en tant qu'actions d'intention natives et être rassemblées dans des profils d'inspection pour prendre en charge la vérification par lots via Inspect Code et le support d'intégration continue fourni par la fonctionnalité officielle d'exécution en ligne de commande de JetBrains.

---


Vous pouvez installer Sensei à partir d'IntelliJ en utilisant "Preferences \ Plugins" (Mac) ou "Settings \ Plugins" (Windows) puis en recherchant simplement "sensei secure code".

Si vous voulez essayer d'exécuter un projet dans IntelliJ à partir de la ligne de commande, le projet utilisé dans ce billet peut être trouvé dans le dépôt `sensei-blog-examples` dans le compte GitHub Secure Code Warrior . Un exercice pour le lecteur est de créer un profil qui exécutera seulement les règles Sensei . Essayez-le :


https://github.com/securecodewarrior/sensei-blog-examples

En savoir plus sur Sensei


Afficher les ressources
Afficher les ressources

SenseiとIntelliJのインテンションアクションを、IDE内のインスペクションとして、コマンドラインから、そして継続的インテグレーションでバッチモードで実行する方法を説明します。

Souhaitez-vous en savoir davantage ?

Alan Richardson a plus de 20 ans d'expérience en tant que développeur, testeur et responsable des tests, à tous les niveaux de la hiérarchie des tests.Secure Code Warrior , où il travaille en étroite collaboration avec l'équipe pour améliorer le développement de code sécurisé et de haute qualité. M. Richardson est l'auteur de quatre ouvrages, dont Dear Evil Tester et Java for Testers. Il a également créé des cours de formation en ligne pour aider les développeurs à apprendre les tests techniques Web et Selenium WebDriver avec Java.M. Alan publie des articles et des vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

En savoir plus

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.
Partager :
marques LinkedInSocialLogo x
Auteur
Monsieur Alan Richardson
Publié le 15 février 2021

Alan Richardson a plus de 20 ans d'expérience en tant que développeur, testeur et responsable des tests, à tous les niveaux de la hiérarchie des tests.Secure Code Warrior , où il travaille en étroite collaboration avec l'équipe pour améliorer le développement de code sécurisé et de haute qualité. M. Richardson est l'auteur de quatre ouvrages, dont Dear Evil Tester et Java for Testers. Il a également créé des cours de formation en ligne pour aider les développeurs à apprendre les tests techniques Web et Selenium WebDriver avec Java.M. Alan publie des articles et des vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Partager :
marques LinkedInSocialLogo x

Exécuter les inspections IntelliJ à partir de l'intégration continue

IntelliJ IDEA offre des fonctionnalités pour aider à améliorer notre codage, au sein de l'IDE lorsque vous écrivez du code sous forme d'intentions. Les intentions peuvent être utilisées en batch pour inspecter le code à la recherche de modèles à travers la source et même s'étendre à l'analyse en ligne de commande ou être ajoutées à l'intégration continue. Cet article couvre les fonctionnalités d'IntelliJ et l'extension avec des Intentions personnalisées créées dans Sensei.


IntelliJ Inspections

La fonction Inspections d'IntelliJ permet d'afficher la plupart des erreurs qui sont signalées dynamiquement dans l'IDE lors du codage, par exemple.

  • détecter les classes abstraites qui peuvent être converties en interfaces,
  • l'identification des champs de classe redondants qui peuvent être locaux,
  • un avertissement concernant l'utilisation de méthodes obsolètes,
  • etc.


Ces inspections mettent en évidence le code qui correspond dans l'IDE à des actions d'intention qui ont souvent un correctif rapide associé.


Inspection des options d'utilisation de l'api obsolètes


La mise en évidence en temps réel par l'IDE lorsque le code correspond à une inspection peut nous aider à améliorer notre codage de manière dynamique. Après avoir identifié le problème dans le code, l'utilisation des actions d'intention d'IntelliJ pour corriger rapidement le code peut renforcer les meilleurs modèles.

Profil d'inspection

Les inspections peuvent être exécutées par lots à partir de l'IDE, de la ligne de commande ou dans le cadre d'un processus d'intégration continue.

La clé pour travailler avec les inspections IntelliJ en tant que lot est l'utilisation d'un profil d'inspection.

IntelliJ a deux profils d'inspection par défaut : un stocké dans le projet, et un stocké dans l'IDE.

De nouveaux profils d'inspection peuvent être créés pour configurer des plugins ou des cas d'utilisation spécifiques.

  • Exécutez uniquement l'analyse en temps réel de Checkstyle
  • Exécutez un ensemble spécifique de règles Sensei
  • Exécuter les contrôles HTML

Les inspections d'un profil peuvent être activées ou désactivées à partir des préférences d'IntelliJ. La boîte de dialogue Préférences est également un moyen facile de connaître la gamme d'inspections disponibles.


Inspections Usage de l'Api Marqué pour suppression


L'icône "outil" vous permet de dupliquer un profil et d'en créer un nouveau pour collecter un ensemble spécifique de règles.


Icône d'outil pour dupliquer un profil


Exécuter un profil d'inspection dans l'IDE

Les profils d'inspection peuvent être exécutés à partir de l'IDE en utilisant le menu `Analyze \ Inspect Code...`.


Exécution d'un profil d'inspection à l'aide du code d'analyse ou d'inspection


La fonctionnalité d'analyse vous permet de contrôler le champ d'application de l'inspection, par exemple l'ensemble du projet, y compris ou non les sources de test, ou un ensemble spécifique de fichiers. 


Spécifier l'étendue de l'inspection


Vous pouvez également gérer les profils d'inspection à partir d'ici pour créer ou configurer un profil particulier.


En cliquant sur [OK] dans la boîte de dialogue "Specify Inspection Scope", IntelliJ lancera toutes les inspections sélectionnées dans le profil dans le périmètre défini.

IntelliJ va rapporter les résultats de l'exécution des inspections dans l'onglet `Inspection Results`.


IntelliJ rapporte les résultats de l'exécution des inspections dans l'onglet Résultats de l'inspection


Le plugin Sensei de Secure Code Warrior vous permet de créer des recettes de correspondance de code personnalisées. Sensei s'intègre étroitement à IntelliJ pour rendre ces recettes personnalisées aussi naturelles à utiliser que les actions d'intention d'IntelliJ. Cela signifie qu'elles sont chargées dans IntelliJ en tant qu'inspections et qu'elles peuvent être regroupées, activées et désactivées à l'aide de profils d'inspection. La création d'un profil d'inspection personnalisé et l'utilisation de la fonctionnalité Analyze Inspect Code est la méthode recommandée pour exécuter les recettes Sensei en masse dans un projet.



Exécution d'un profil d'inspection à partir de la ligne de commande

IntelliJ a la capacité d'exécuter des inspections à partir de la ligne de commande comme documenté par JetBrains :

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


J'utilise principalement macOS, et je peux exécuter une seule instance d'IntelliJ à partir de la ligne de commande avec :

open -na "IntelliJ IDEA CE.app"


Pour faciliter l'exécution, je l'ajoute à un script de commande shell.

vi /usr/local/bin/idea


Le contenu du script provient de la documentation officielle fournie par IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Je l'ai ensuite rendu exécutable afin de simplifier le processus d'inspection en ligne de commande.

chmod 755 /usr/local/bin/idea


La documentation officielle d'intellij décrit la forme générale de la commande d'inspection comme suit :

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


Dans la pratique, je qualifie pleinement les chemins et je n'ai besoin d'aucune option :

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

Ceci exécute toutes les inspections que j'ai ajoutées au `senseiprofile` et rapporte les résultats dans le dossier `scan-results`.


Visualisation des résultats de l'inspection

Nous pouvons rapporter ces résultats à partir de l'intégration continue, comme nous le verrons plus loin.

Nous pouvons également les visualiser dans IntelliJ lui-même en utilisant la fonction "Analyse \Voir les résultats de l'inspection hors ligne...\N".


Analyser Visualiser les résultats d'inspection hors ligne


Les résultats sont alors chargés dans l'onglet "Résultats de l'inspection".


Chargement des résultats dans l'onglet Résultats de l'inspection


Ceci est officiellement documenté sur le site de JetBrains :

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Cela peut être utilisé au cours d'un processus d'examen du code si l'exécution de la ligne de commande a été incorporée dans un processus d'intégration continue et que les examinateurs souhaitent vérifier le contexte source complet de l'une des entrées du résultat de l'inspection.

Profils d'inspection dans l'intégration continue

Lorsque l'on ajoute l'inspection en ligne de commande à l'intégration continue, on souhaite idéalement qu'un rapport soit généré automatiquement et plusieurs options s'offrent à nous.

TeamCity offre une prise en charge immédiate des profils d'inspection dans l'intégration continue.

- https://www.jetbrains.com/help/teamcity/inspections.html


Le plugin Jenkins Warnings NG supporte la sortie de la ligne de commande d'IntelliJ Inspections comme l'un des formats de rapport.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Des projets communautaires comme `idea CLI Inspector` existent pour supporter l'utilisation des profils d'inspection dans d'autres outils de CI, c'est-à-dire

- https://github.com/bentolor/idea-cli-inspector


L'avenir des profils d'inspection dans un processus de CI semble encore plus prometteur avec l'introduction du projet Qodana de JetBrains. Le projet Qodana est une version headless d'IntelliJ avec des actions Github officielles et des images Docker.

- https://github.com/JetBrains/Qodana


Qodana est actuellement en version bêta, mais l'équipe de Sensei la surveille afin qu'elle devienne une plateforme officiellement prise en charge pour l'exécution des règles Sensei dans le cadre de l'intégration continue.


Résumé

Les actions d'intention nous permettent de renforcer les modèles de codage et de les corriger rapidement dans l'IDE lorsque nous commettons des erreurs pendant le codage.

Les profils d'inspection nous permettent de les rassembler en profils qui peuvent être exécutés par lots en tant qu'action d'analyse et d'inspection du code. Cela peut s'avérer utile si nous rencontrons un modèle et que nous voulons vérifier si nous ne l'avons pas oublié ailleurs dans notre code.

Les profils d'inspection peuvent être exécutés à partir de la ligne de commande et même incorporés dans les processus d'intégration continue, ce qui permet d'appliquer le modèle "faire confiance, mais vérifier" et de détecter tout dérapage accidentel.

Tout ce qui précède est intégré dans les fonctionnalités d'IntelliJ et JetBrains améliore son processus d'intégration continue avec l'introduction de Qodana.


Sensei Les recettes sont chargées dans IntelliJ pour agir en tant qu'actions d'intention natives et être rassemblées dans des profils d'inspection pour prendre en charge la vérification par lots via Inspect Code et le support d'intégration continue fourni par la fonctionnalité officielle d'exécution en ligne de commande de JetBrains.

---


Vous pouvez installer Sensei à partir d'IntelliJ en utilisant "Preferences \ Plugins" (Mac) ou "Settings \ Plugins" (Windows) puis en recherchant simplement "sensei secure code".

Si vous voulez essayer d'exécuter un projet dans IntelliJ à partir de la ligne de commande, le projet utilisé dans ce billet peut être trouvé dans le dépôt `sensei-blog-examples` dans le compte GitHub Secure Code Warrior . Un exercice pour le lecteur est de créer un profil qui exécutera seulement les règles Sensei . Essayez-le :


https://github.com/securecodewarrior/sensei-blog-examples

En savoir plus sur Sensei


Afficher les ressources
Afficher les ressources

Pour télécharger le rapport, veuillez remplir le formulaire ci-dessous.

Nous vous prions de bien vouloir nous autoriser à vous envoyer des informations sur nos produits et/ou sur des sujets liés au codage sécurisé. Nous traitons vos informations personnelles avec le plus grand soin et ne les vendons jamais à des tiers à des fins marketing.

Envoi
icône de réussite scw
icône d'erreur scw
Pour envoyer le formulaire, veuillez activer le cookie « Analytics ». Une fois le paramétrage terminé, vous pouvez le désactiver à nouveau.

Exécuter les inspections IntelliJ à partir de l'intégration continue

IntelliJ IDEA offre des fonctionnalités pour aider à améliorer notre codage, au sein de l'IDE lorsque vous écrivez du code sous forme d'intentions. Les intentions peuvent être utilisées en batch pour inspecter le code à la recherche de modèles à travers la source et même s'étendre à l'analyse en ligne de commande ou être ajoutées à l'intégration continue. Cet article couvre les fonctionnalités d'IntelliJ et l'extension avec des Intentions personnalisées créées dans Sensei.


IntelliJ Inspections

La fonction Inspections d'IntelliJ permet d'afficher la plupart des erreurs qui sont signalées dynamiquement dans l'IDE lors du codage, par exemple.

  • détecter les classes abstraites qui peuvent être converties en interfaces,
  • l'identification des champs de classe redondants qui peuvent être locaux,
  • un avertissement concernant l'utilisation de méthodes obsolètes,
  • etc.


Ces inspections mettent en évidence le code qui correspond dans l'IDE à des actions d'intention qui ont souvent un correctif rapide associé.


Inspection des options d'utilisation de l'api obsolètes


La mise en évidence en temps réel par l'IDE lorsque le code correspond à une inspection peut nous aider à améliorer notre codage de manière dynamique. Après avoir identifié le problème dans le code, l'utilisation des actions d'intention d'IntelliJ pour corriger rapidement le code peut renforcer les meilleurs modèles.

Profil d'inspection

Les inspections peuvent être exécutées par lots à partir de l'IDE, de la ligne de commande ou dans le cadre d'un processus d'intégration continue.

La clé pour travailler avec les inspections IntelliJ en tant que lot est l'utilisation d'un profil d'inspection.

IntelliJ a deux profils d'inspection par défaut : un stocké dans le projet, et un stocké dans l'IDE.

De nouveaux profils d'inspection peuvent être créés pour configurer des plugins ou des cas d'utilisation spécifiques.

  • Exécutez uniquement l'analyse en temps réel de Checkstyle
  • Exécutez un ensemble spécifique de règles Sensei
  • Exécuter les contrôles HTML

Les inspections d'un profil peuvent être activées ou désactivées à partir des préférences d'IntelliJ. La boîte de dialogue Préférences est également un moyen facile de connaître la gamme d'inspections disponibles.


Inspections Usage de l'Api Marqué pour suppression


L'icône "outil" vous permet de dupliquer un profil et d'en créer un nouveau pour collecter un ensemble spécifique de règles.


Icône d'outil pour dupliquer un profil


Exécuter un profil d'inspection dans l'IDE

Les profils d'inspection peuvent être exécutés à partir de l'IDE en utilisant le menu `Analyze \ Inspect Code...`.


Exécution d'un profil d'inspection à l'aide du code d'analyse ou d'inspection


La fonctionnalité d'analyse vous permet de contrôler le champ d'application de l'inspection, par exemple l'ensemble du projet, y compris ou non les sources de test, ou un ensemble spécifique de fichiers. 


Spécifier l'étendue de l'inspection


Vous pouvez également gérer les profils d'inspection à partir d'ici pour créer ou configurer un profil particulier.


En cliquant sur [OK] dans la boîte de dialogue "Specify Inspection Scope", IntelliJ lancera toutes les inspections sélectionnées dans le profil dans le périmètre défini.

IntelliJ va rapporter les résultats de l'exécution des inspections dans l'onglet `Inspection Results`.


IntelliJ rapporte les résultats de l'exécution des inspections dans l'onglet Résultats de l'inspection


Le plugin Sensei de Secure Code Warrior vous permet de créer des recettes de correspondance de code personnalisées. Sensei s'intègre étroitement à IntelliJ pour rendre ces recettes personnalisées aussi naturelles à utiliser que les actions d'intention d'IntelliJ. Cela signifie qu'elles sont chargées dans IntelliJ en tant qu'inspections et qu'elles peuvent être regroupées, activées et désactivées à l'aide de profils d'inspection. La création d'un profil d'inspection personnalisé et l'utilisation de la fonctionnalité Analyze Inspect Code est la méthode recommandée pour exécuter les recettes Sensei en masse dans un projet.



Exécution d'un profil d'inspection à partir de la ligne de commande

IntelliJ a la capacité d'exécuter des inspections à partir de la ligne de commande comme documenté par JetBrains :

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


J'utilise principalement macOS, et je peux exécuter une seule instance d'IntelliJ à partir de la ligne de commande avec :

open -na "IntelliJ IDEA CE.app"


Pour faciliter l'exécution, je l'ajoute à un script de commande shell.

vi /usr/local/bin/idea


Le contenu du script provient de la documentation officielle fournie par IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Je l'ai ensuite rendu exécutable afin de simplifier le processus d'inspection en ligne de commande.

chmod 755 /usr/local/bin/idea


La documentation officielle d'intellij décrit la forme générale de la commande d'inspection comme suit :

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


Dans la pratique, je qualifie pleinement les chemins et je n'ai besoin d'aucune option :

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

Ceci exécute toutes les inspections que j'ai ajoutées au `senseiprofile` et rapporte les résultats dans le dossier `scan-results`.


Visualisation des résultats de l'inspection

Nous pouvons rapporter ces résultats à partir de l'intégration continue, comme nous le verrons plus loin.

Nous pouvons également les visualiser dans IntelliJ lui-même en utilisant la fonction "Analyse \Voir les résultats de l'inspection hors ligne...\N".


Analyser Visualiser les résultats d'inspection hors ligne


Les résultats sont alors chargés dans l'onglet "Résultats de l'inspection".


Chargement des résultats dans l'onglet Résultats de l'inspection


Ceci est officiellement documenté sur le site de JetBrains :

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Cela peut être utilisé au cours d'un processus d'examen du code si l'exécution de la ligne de commande a été incorporée dans un processus d'intégration continue et que les examinateurs souhaitent vérifier le contexte source complet de l'une des entrées du résultat de l'inspection.

Profils d'inspection dans l'intégration continue

Lorsque l'on ajoute l'inspection en ligne de commande à l'intégration continue, on souhaite idéalement qu'un rapport soit généré automatiquement et plusieurs options s'offrent à nous.

TeamCity offre une prise en charge immédiate des profils d'inspection dans l'intégration continue.

- https://www.jetbrains.com/help/teamcity/inspections.html


Le plugin Jenkins Warnings NG supporte la sortie de la ligne de commande d'IntelliJ Inspections comme l'un des formats de rapport.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Des projets communautaires comme `idea CLI Inspector` existent pour supporter l'utilisation des profils d'inspection dans d'autres outils de CI, c'est-à-dire

- https://github.com/bentolor/idea-cli-inspector


L'avenir des profils d'inspection dans un processus de CI semble encore plus prometteur avec l'introduction du projet Qodana de JetBrains. Le projet Qodana est une version headless d'IntelliJ avec des actions Github officielles et des images Docker.

- https://github.com/JetBrains/Qodana


Qodana est actuellement en version bêta, mais l'équipe de Sensei la surveille afin qu'elle devienne une plateforme officiellement prise en charge pour l'exécution des règles Sensei dans le cadre de l'intégration continue.


Résumé

Les actions d'intention nous permettent de renforcer les modèles de codage et de les corriger rapidement dans l'IDE lorsque nous commettons des erreurs pendant le codage.

Les profils d'inspection nous permettent de les rassembler en profils qui peuvent être exécutés par lots en tant qu'action d'analyse et d'inspection du code. Cela peut s'avérer utile si nous rencontrons un modèle et que nous voulons vérifier si nous ne l'avons pas oublié ailleurs dans notre code.

Les profils d'inspection peuvent être exécutés à partir de la ligne de commande et même incorporés dans les processus d'intégration continue, ce qui permet d'appliquer le modèle "faire confiance, mais vérifier" et de détecter tout dérapage accidentel.

Tout ce qui précède est intégré dans les fonctionnalités d'IntelliJ et JetBrains améliore son processus d'intégration continue avec l'introduction de Qodana.


Sensei Les recettes sont chargées dans IntelliJ pour agir en tant qu'actions d'intention natives et être rassemblées dans des profils d'inspection pour prendre en charge la vérification par lots via Inspect Code et le support d'intégration continue fourni par la fonctionnalité officielle d'exécution en ligne de commande de JetBrains.

---


Vous pouvez installer Sensei à partir d'IntelliJ en utilisant "Preferences \ Plugins" (Mac) ou "Settings \ Plugins" (Windows) puis en recherchant simplement "sensei secure code".

Si vous voulez essayer d'exécuter un projet dans IntelliJ à partir de la ligne de commande, le projet utilisé dans ce billet peut être trouvé dans le dépôt `sensei-blog-examples` dans le compte GitHub Secure Code Warrior . Un exercice pour le lecteur est de créer un profil qui exécutera seulement les règles Sensei . Essayez-le :


https://github.com/securecodewarrior/sensei-blog-examples

En savoir plus sur Sensei


Veuillez consulter le séminaire en ligne.
Commençons
En savoir plus

Veuillez cliquer sur le lien ci-dessous pour télécharger le PDF de cette ressource.

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.

Afficher le rapportVeuillez réserver une démonstration.
Télécharger le PDF
Afficher les ressources
Partager :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager :
marques LinkedInSocialLogo x
Auteur
Monsieur Alan Richardson
Publié le 15 février 2021

Alan Richardson a plus de 20 ans d'expérience en tant que développeur, testeur et responsable des tests, à tous les niveaux de la hiérarchie des tests.Secure Code Warrior , où il travaille en étroite collaboration avec l'équipe pour améliorer le développement de code sécurisé et de haute qualité. M. Richardson est l'auteur de quatre ouvrages, dont Dear Evil Tester et Java for Testers. Il a également créé des cours de formation en ligne pour aider les développeurs à apprendre les tests techniques Web et Selenium WebDriver avec Java.M. Alan publie des articles et des vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Partager :
marques LinkedInSocialLogo x

Exécuter les inspections IntelliJ à partir de l'intégration continue

IntelliJ IDEA offre des fonctionnalités pour aider à améliorer notre codage, au sein de l'IDE lorsque vous écrivez du code sous forme d'intentions. Les intentions peuvent être utilisées en batch pour inspecter le code à la recherche de modèles à travers la source et même s'étendre à l'analyse en ligne de commande ou être ajoutées à l'intégration continue. Cet article couvre les fonctionnalités d'IntelliJ et l'extension avec des Intentions personnalisées créées dans Sensei.


IntelliJ Inspections

La fonction Inspections d'IntelliJ permet d'afficher la plupart des erreurs qui sont signalées dynamiquement dans l'IDE lors du codage, par exemple.

  • détecter les classes abstraites qui peuvent être converties en interfaces,
  • l'identification des champs de classe redondants qui peuvent être locaux,
  • un avertissement concernant l'utilisation de méthodes obsolètes,
  • etc.


Ces inspections mettent en évidence le code qui correspond dans l'IDE à des actions d'intention qui ont souvent un correctif rapide associé.


Inspection des options d'utilisation de l'api obsolètes


La mise en évidence en temps réel par l'IDE lorsque le code correspond à une inspection peut nous aider à améliorer notre codage de manière dynamique. Après avoir identifié le problème dans le code, l'utilisation des actions d'intention d'IntelliJ pour corriger rapidement le code peut renforcer les meilleurs modèles.

Profil d'inspection

Les inspections peuvent être exécutées par lots à partir de l'IDE, de la ligne de commande ou dans le cadre d'un processus d'intégration continue.

La clé pour travailler avec les inspections IntelliJ en tant que lot est l'utilisation d'un profil d'inspection.

IntelliJ a deux profils d'inspection par défaut : un stocké dans le projet, et un stocké dans l'IDE.

De nouveaux profils d'inspection peuvent être créés pour configurer des plugins ou des cas d'utilisation spécifiques.

  • Exécutez uniquement l'analyse en temps réel de Checkstyle
  • Exécutez un ensemble spécifique de règles Sensei
  • Exécuter les contrôles HTML

Les inspections d'un profil peuvent être activées ou désactivées à partir des préférences d'IntelliJ. La boîte de dialogue Préférences est également un moyen facile de connaître la gamme d'inspections disponibles.


Inspections Usage de l'Api Marqué pour suppression


L'icône "outil" vous permet de dupliquer un profil et d'en créer un nouveau pour collecter un ensemble spécifique de règles.


Icône d'outil pour dupliquer un profil


Exécuter un profil d'inspection dans l'IDE

Les profils d'inspection peuvent être exécutés à partir de l'IDE en utilisant le menu `Analyze \ Inspect Code...`.


Exécution d'un profil d'inspection à l'aide du code d'analyse ou d'inspection


La fonctionnalité d'analyse vous permet de contrôler le champ d'application de l'inspection, par exemple l'ensemble du projet, y compris ou non les sources de test, ou un ensemble spécifique de fichiers. 


Spécifier l'étendue de l'inspection


Vous pouvez également gérer les profils d'inspection à partir d'ici pour créer ou configurer un profil particulier.


En cliquant sur [OK] dans la boîte de dialogue "Specify Inspection Scope", IntelliJ lancera toutes les inspections sélectionnées dans le profil dans le périmètre défini.

IntelliJ va rapporter les résultats de l'exécution des inspections dans l'onglet `Inspection Results`.


IntelliJ rapporte les résultats de l'exécution des inspections dans l'onglet Résultats de l'inspection


Le plugin Sensei de Secure Code Warrior vous permet de créer des recettes de correspondance de code personnalisées. Sensei s'intègre étroitement à IntelliJ pour rendre ces recettes personnalisées aussi naturelles à utiliser que les actions d'intention d'IntelliJ. Cela signifie qu'elles sont chargées dans IntelliJ en tant qu'inspections et qu'elles peuvent être regroupées, activées et désactivées à l'aide de profils d'inspection. La création d'un profil d'inspection personnalisé et l'utilisation de la fonctionnalité Analyze Inspect Code est la méthode recommandée pour exécuter les recettes Sensei en masse dans un projet.



Exécution d'un profil d'inspection à partir de la ligne de commande

IntelliJ a la capacité d'exécuter des inspections à partir de la ligne de commande comme documenté par JetBrains :

- https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html


J'utilise principalement macOS, et je peux exécuter une seule instance d'IntelliJ à partir de la ligne de commande avec :

open -na "IntelliJ IDEA CE.app"


Pour faciliter l'exécution, je l'ajoute à un script de commande shell.

vi /usr/local/bin/idea


Le contenu du script provient de la documentation officielle fournie par IntelliJ.

#!/bin/sh
open -na "IntelliJ IDEA CE.app" --args "$@"



Je l'ai ensuite rendu exécutable afin de simplifier le processus d'inspection en ligne de commande.

chmod 755 /usr/local/bin/idea


La documentation officielle d'intellij décrit la forme générale de la commande d'inspection comme suit :

idea inspect <project> <inspection-profile> <output></output></inspection-profile></project>
[<options>]</options>


Dans la pratique, je qualifie pleinement les chemins et je n'ai besoin d'aucune option :

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

Ceci exécute toutes les inspections que j'ai ajoutées au `senseiprofile` et rapporte les résultats dans le dossier `scan-results`.


Visualisation des résultats de l'inspection

Nous pouvons rapporter ces résultats à partir de l'intégration continue, comme nous le verrons plus loin.

Nous pouvons également les visualiser dans IntelliJ lui-même en utilisant la fonction "Analyse \Voir les résultats de l'inspection hors ligne...\N".


Analyser Visualiser les résultats d'inspection hors ligne


Les résultats sont alors chargés dans l'onglet "Résultats de l'inspection".


Chargement des résultats dans l'onglet Résultats de l'inspection


Ceci est officiellement documenté sur le site de JetBrains :

- https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results


Cela peut être utilisé au cours d'un processus d'examen du code si l'exécution de la ligne de commande a été incorporée dans un processus d'intégration continue et que les examinateurs souhaitent vérifier le contexte source complet de l'une des entrées du résultat de l'inspection.

Profils d'inspection dans l'intégration continue

Lorsque l'on ajoute l'inspection en ligne de commande à l'intégration continue, on souhaite idéalement qu'un rapport soit généré automatiquement et plusieurs options s'offrent à nous.

TeamCity offre une prise en charge immédiate des profils d'inspection dans l'intégration continue.

- https://www.jetbrains.com/help/teamcity/inspections.html


Le plugin Jenkins Warnings NG supporte la sortie de la ligne de commande d'IntelliJ Inspections comme l'un des formats de rapport.

- https://github.com/jenkinsci/warnings-ng-plugin

- https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md


Des projets communautaires comme `idea CLI Inspector` existent pour supporter l'utilisation des profils d'inspection dans d'autres outils de CI, c'est-à-dire

- https://github.com/bentolor/idea-cli-inspector


L'avenir des profils d'inspection dans un processus de CI semble encore plus prometteur avec l'introduction du projet Qodana de JetBrains. Le projet Qodana est une version headless d'IntelliJ avec des actions Github officielles et des images Docker.

- https://github.com/JetBrains/Qodana


Qodana est actuellement en version bêta, mais l'équipe de Sensei la surveille afin qu'elle devienne une plateforme officiellement prise en charge pour l'exécution des règles Sensei dans le cadre de l'intégration continue.


Résumé

Les actions d'intention nous permettent de renforcer les modèles de codage et de les corriger rapidement dans l'IDE lorsque nous commettons des erreurs pendant le codage.

Les profils d'inspection nous permettent de les rassembler en profils qui peuvent être exécutés par lots en tant qu'action d'analyse et d'inspection du code. Cela peut s'avérer utile si nous rencontrons un modèle et que nous voulons vérifier si nous ne l'avons pas oublié ailleurs dans notre code.

Les profils d'inspection peuvent être exécutés à partir de la ligne de commande et même incorporés dans les processus d'intégration continue, ce qui permet d'appliquer le modèle "faire confiance, mais vérifier" et de détecter tout dérapage accidentel.

Tout ce qui précède est intégré dans les fonctionnalités d'IntelliJ et JetBrains améliore son processus d'intégration continue avec l'introduction de Qodana.


Sensei Les recettes sont chargées dans IntelliJ pour agir en tant qu'actions d'intention natives et être rassemblées dans des profils d'inspection pour prendre en charge la vérification par lots via Inspect Code et le support d'intégration continue fourni par la fonctionnalité officielle d'exécution en ligne de commande de JetBrains.

---


Vous pouvez installer Sensei à partir d'IntelliJ en utilisant "Preferences \ Plugins" (Mac) ou "Settings \ Plugins" (Windows) puis en recherchant simplement "sensei secure code".

Si vous voulez essayer d'exécuter un projet dans IntelliJ à partir de la ligne de commande, le projet utilisé dans ce billet peut être trouvé dans le dépôt `sensei-blog-examples` dans le compte GitHub Secure Code Warrior . Un exercice pour le lecteur est de créer un profil qui exécutera seulement les règles Sensei . Essayez-le :


https://github.com/securecodewarrior/sensei-blog-examples

En savoir plus sur Sensei


Table des matières

Télécharger le PDF
Afficher les ressources
Souhaitez-vous en savoir davantage ?

Alan Richardson a plus de 20 ans d'expérience en tant que développeur, testeur et responsable des tests, à tous les niveaux de la hiérarchie des tests.Secure Code Warrior , où il travaille en étroite collaboration avec l'équipe pour améliorer le développement de code sécurisé et de haute qualité. M. Richardson est l'auteur de quatre ouvrages, dont Dear Evil Tester et Java for Testers. Il a également créé des cours de formation en ligne pour aider les développeurs à apprendre les tests techniques Web et Selenium WebDriver avec Java.M. Alan publie des articles et des vidéos de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

En savoir plus

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.[Télécharger]
Partager :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour débuter

Autres publications
Centre de ressources

Ressources pour débuter

Autres publications