Tous les articles
IA & dev

GitHub AI Scan : ce que l'analyse IA des pull requests change pour une appli Spring Boot legacy

Par Elouan Laurent
Figurine Octocat de GitHub devant un écran de code, pour illustrer GitHub AI Scan sur une appli Spring Boot

GitHub AI Scan, c'est quoi et qu'est-ce qui sort le 15 octobre ?

AI Scan est le moteur d'analyse par IA de GitHub. Il cherche des failles dans les pull requests, pour les langages que CodeQL ne couvre pas. Le 15 octobre 2026, GitHub l'a passé en disponibilité générale.

Le changelog cite PHP, Shell/Bash, Terraform (HCL), les Dockerfiles, les JSP pour Java et Blazor pour C#. La liste se termine par « and more ».

Les résultats s'affichent dans la pull request, à côté de ceux de CodeQL, avec un badge « AI ». Ils peuvent contenir une explication du risque et un correctif suggéré. Ils sont consultatifs : ils ne font pas échouer le check et ne peuvent pas bloquer un merge.

Le même jour, GitHub a aussi passé en GA l'autofix agentique des alertes de code scanning, dont celles de CodeQL. C'est un agent qui corrige une alerte, relance CodeQL pour vérifier, puis ouvre une pull request.

Tout ce qui suit vient des changelogs et de la documentation de GitHub, relus le 15 octobre 2026. Je n'ai lancé AI Scan sur aucun dépôt.

Sur une appli Spring Boot legacy, AI Scan regarde tout sauf le Java

D'après la documentation de CodeQL, CodeQL analyse déjà Java et Kotlin. AI Scan ne vise que les langages hors de ce périmètre. Il ne cherche donc pas de failles dans vos contrôleurs ni vos services : c'est le travail de CodeQL. Il peut seulement lire le reste du dépôt pour avoir du contexte.

Il s'occupe de ce qui entoure le Java, la partie que CodeQL laissait de côté :

  • les vues JSP, que CodeQL n'analyse pas ;
  • le Dockerfile qui construit l'image ;
  • les scripts Shell de déploiement ou de démarrage ;
  • le Terraform de l'infrastructure, s'il vit dans le même dépôt.

La doc d'AI Scan classe les résultats en neuf catégories. Quatre parlent directement à ce type de projet. L'injection de chaîne couvre le HTML construit sans échappement, ce qu'une JSP produit facilement. Les risques de chaîne d'approvisionnement couvrent les images non épinglées. La mauvaise configuration couvre les fonctions de debug activées. L'exposition de données couvre les secrets ou les traces de pile stockés, écrits dans les logs ou envoyés sans protection.

Une limite pèse lourd sur du legacy. AI Scan n'analyse que les pull requests, jamais le dépôt entier. Une JSP que personne ne modifie n'est jamais analysée, tant qu'aucune pull request ne la touche.

La doc parle d'exemples de langages, pas d'une liste fermée. Elle ne cite ni Thymeleaf ni les fichiers application.properties. Je ne compte pas dessus tant que GitHub ne l'écrit pas.

Qui y a droit, et comment l'activer

La disponibilité dépend du propriétaire du dépôt et de sa visibilité. Voici le tableau de la doc :

Propriétaire Visibilité Disponibilité
Organisation Public Oui, sans licence par committer
Organisation Privé ou interne Avec GitHub Code Security ou GitHub Advanced Security
Compte personnel Public Oui
Compte personnel Privé Non

Aucune licence Copilot n'est nécessaire. Il ne faut pas non plus choisir de modèle, ni configurer de build.

L'activation descend en cascade. Dans une entreprise GitHub, la politique AI Scan vaut « Not allowed » par défaut. L'autoriser ne l'active nulle part.

Ensuite, un propriétaire d'organisation ou un security manager l'active pour l'organisation. Attention : l'activation vaut tout de suite pour tous les dépôts éligibles où le code scanning est actif. Un admin de dépôt peut seulement se retirer.

Sur un dépôt public personnel, une bascule « AI Scan for pull requests » se trouve sous « Code scanning ». Pour un déploiement progressif, GitHub fournit une API REST par organisation et par dépôt.

Ce que ça coûte vraiment

« Disponible sur les dépôts publics » ne veut pas dire gratuit. La doc de facturation est nette : AI Scan consomme des Code Security AI Credits, même quand le dépôt est public.

Sur un dépôt d'organisation, c'est le compte qui paie pour l'organisation qui est facturé. Si ce compte a des crédits inclus via un abonnement Copilot, AI Scan les consomme d'abord. Le reste est facturé à l'usage.

La documentation de facturation Copilot fixe 1 AI Credit à 0,01 $. La doc d'Advanced Security ne répète pas ce taux pour les crédits Code Security. Surtout, au 15 octobre 2026, GitHub ne publie aucun coût par scan ni par pull request. Impossible donc d'estimer une facture mensuelle à partir de la doc.

Pour un dépôt privé, il faut en plus la licence. La page Advanced Security affiche Code Security à 30 $ par committer actif et par mois.

Deux règles servent à garder la main :

  • Un budget dur coupe AI Scan. S'il ne reste plus de crédits, AI Scan ne produit plus de résultats. Il reprend quand un admin relève le budget ou au cycle de facturation suivant.
  • L'activation consomme avant l'opt-out. GitHub prévient que des pull requests peuvent consommer des crédits avant qu'un admin de dépôt ait eu le temps de se retirer.

GitHub conseille d'ailleurs de vérifier les crédits inclus et de régler les budgets avant d'activer.

L'autofix agentique des alertes de code scanning : utile, mais pas gratuit

L'autofix agentique travaille sur les alertes déjà ouvertes, y compris celles de CodeQL sur votre Java. Selon le changelog, on assigne une alerte à Copilot. L'agent explore les fichiers utiles et propose un correctif. Il relance CodeQL pour vérifier que l'alerte se ferme. Puis il ouvre une pull request en brouillon.

On peut aussi sélectionner jusqu'à 25 alertes, corrigées ensemble dans une seule pull request. Seules les alertes de la branche par défaut sont concernées.

Le périmètre diffère selon la source. Le changelog le réserve aux clients Code Security ou Advanced Security sur GitHub Enterprise Cloud, avec une méthode de facturation Copilot définie. La doc l'ouvre aussi aux dépôts publics, sans licence Copilot. Je m'en tiens au changelog tant que les deux ne concordent pas.

Côté coût, chaque session consomme des AI Credits et des minutes GitHub Actions. Copilot Autofix, le bouton « Generate fix » sur chaque alerte, ne consomme pas d'AI Credits. Or le changelog précise qu'activer l'autofix agentique remplace ce bouton gratuit par « Assign to Copilot ».

La doc fixe aussi une limite de validation. L'agent ne peut pas confirmer un correctif pour une alerte issue de requêtes CodeQL personnalisées, de la suite security-extended ou d'un outil tiers. GitHub parle de « best-effort » et demande de relire et tester chaque changement avant le merge.

Les limites à connaître avant d'activer

  • Des faux positifs. GitHub l'écrit dans sa doc, sans publier de taux. Un pouce levé ou baissé sur chaque résultat sert de retour.
  • Aucun blocage. Un résultat AI Scan ne peut pas encore servir de condition de merge dans un ruleset.
  • Forks et Dependabot exclus. Les pull requests venues d'un fork ou créées par Dependabot ne sont pas scannées.
  • Vos instructions sont ignorées. AI Scan utilise ses propres prompts, pas les fichiers copilot-instructions.md ni CLAUDE.md. L'autofix agentique, lui, applique les instructions personnalisées de Copilot.
  • Un périmètre mouvant. Les langages et les catégories peuvent changer, selon la doc.

Que faire cette semaine si vous maintenez une appli Spring Boot avec des JSP ?

Mon avis : AI Scan comble un vrai angle mort. Les JSP et les Dockerfiles échappaient à CodeQL. Mais AI Scan ne regarde que le code qui change, et son coût par pull request n'est pas publié.

Trois actions :

  1. Poser un budget avant d'activer. Réglez le budget Code Security AI Credits, puis activez. Pas l'inverse.
  2. Faire un pilote sur un dépôt. Un admin de dépôt ne peut pas activer AI Scan seul. Il faut activer l'organisation, puis retirer aussitôt les autres dépôts, par exemple via l'API REST. Ouvrez ensuite une pull request qui touche quelques JSP et le Dockerfile, et lisez les résultats avec un dev qui connaît l'appli.
  3. Garder Copilot Autofix pour l'instant. Tant que vous ne savez pas ce que coûte une session agentique, gardez le bouton gratuit. Et toute PR d'autofix passe en revue humaine, avec les tests, comme celle d'un collègue.

Si vous traitez aussi les secrets, lisez le blocage des clés Anthropic par le secret scanning.

Vous maintenez une appli Spring Boot avec des JSP et voulez savoir quoi activer, et pour quel budget ? Je développe en Java / Spring Boot depuis 2015. Réserver un appel découverte de 30 minutes.

À lire ensuite