Skip to main content

Avertissement : détection de X fichiers Kotlin dans votre projet qui n’ont pas pu être traités sans génération

Les bases de données CodeQL peuvent être créées pour Java sans générer le code, mais les fichiers Kotlin sont exclus, sauf si le code est généré.

Remarque : l’option permettant d’analyser un langage compilé sans le générer à l’aide de CodeQL est actuellement en version bêta et susceptible de changer. Pendant la version bêta, cette option est prise en charge uniquement pour les bases de code Java.

À propos de cet avertissement

Warning: Detected X Kotlin files in your project that could not be processed without a build. To process these files...

Cet avertissement est signalé lorsque des fichiers Kotlin sont détectés dans un référentiel qui a exécuté CodeQL code scanning pour Java à l’aide du mode de génération de none (configuration par défaut) ou si vous exécutez la CodeQL CLI à l’aide de --build-mode none pour un référentiel contenant des fichiers Java et Kotlin.

Confirmation de la cause de l’avertissement

Cet avertissement s’affiche uniquement lorsque le mode de génération de none est utilisé pour un référentiel avec des fichiers Java et Kotlin.

L’action CodeQL et CodeQL CLI prennent en charge un mode de génération de none pour Java. Cela permet d’activer facilement l’analyse du code Java sans générer la codebase. Toutefois, les fichiers Kotlin ne sont pas inclus dans la base de données CodeQL résultante.

Vous pouvez vérifier la présence de fichiers Kotlin en examinant le référentiel ou la demande de tirage qui a déclenché l’avertissement. Le mode de génération none est utilisé uniquement dans les circonstances suivantes :

  • Code scanning a été activé pour le référentiel avant l’ajout du code Kotlin et après l’introduction du nouveau mode (précédemment, il aurait utilisé le mode autobuild).
  • Le workflow CodeQL spécifie un mode de génération de none pour le référentiel (vérification pour build-mode: none).
  • La CodeQL CLI est appelée sans --command et avec --build-mode none.

Résolution du problème

Vous ne souhaiterez peut-être pas analyser les fichiers Kotlin, auquel cas vous pouvez ignorer le message d’avertissement.

Si vous souhaitez mettre à jour l’analyse pour inclure également des fichiers Kotlin, CodeQL devra générer le code Java et Kotlin.

Configuration par défaut de l’Code scanning

  1. Attendez que le code Kotlin soit fusionné dans la branche par défaut du référentiel.
  2. Désactivez puis réactivez la configuration par défaut sur la page Paramètres de votre référentiel.

Cela déclenche une nouvelle analyse à l’aide de la détection automatique de génération. Consultez « Définition de la configuration par défaut pour l’analyse du code » et « Génération de Java et Kotlin ».

Si la détection automatique de génération échoue, vous devez utiliser la configuration avancée avec les commandes de génération appropriées pour que le projet analyse les deux langages.

Configuration avancée de l’Code scanning

Si vous utilisez déjà la configuration avancée, vous pouvez modifier le workflow CodeQL et modifier le mode de génération pour java-kotlin depuis none vers autobuild pour automatiquement générer votre projet, ou manual pour spécifier vos propres étapes de génération. « Génération de Java et Kotlin. »

Si vous devez effectuer une conversion de la configuration par défaut à la configuration avancée, vous devez activer la configuration avancée sur la page Paramètres de votre référentiel et créer un workflow CodeQL workflow. Vous pouvez ensuite définir un mode de génération manual pour java-kotlin et définir les commandes de génération pour le projet.

Exécution directe de l’CodeQL CLI

Mettez à jour vos appels pour exécuter l’CodeQL CLI pour le référentiel et les demandes de tirage pour remplacer --build-mode none par --build-mode autobuild pour essayer la détection automatique de génération. Si la détection automatique de génération échoue, supprimez l’option --build-mode et incluez une ou plusieurs options --command détaillant le script de génération ou les étapes nécessaires pour générer le projet.

Pour aller plus loin