Skip to main content

Les résultats SARIF dépassent une ou plusieurs limites

Découvrez comment résoudre les problèmes lorsqu’un fichier SARIF est rejeté par code scanning car une ou plusieurs limites sont dépassées.

À propos des limites code scanning sur les résultats SARIF

# SARIF results exceed soft limits
  Locations for an alert exceeded limits
  Analysis SARIF file exceeded alert limits
  Rule tags in SARIF file exceed limits
  Alert in SARIF upload exceeded thread flow location limits

# SARIF results exceed hard limit
  Alert(s) in SARIF file exceeded thread flow location limits
  Analysis SARIF file rejected due to extension limits
  Analysis SARIF file rejected due to location limit
  Analysis SARIF file rejected due to rule tag limits
  Analysis SARIF file rejected due to result limits
  Analysis SARIF file rejected due to rule limits
  Analysis SARIF file rejected due to run limits

Code scanning définit deux types de limites sur les champs dans les fichiers de résultats SARIF.

  • Limites souples qui déterminent la quantité de données stockées et affichées aux utilisateurs.
  • Limites strictes qui déterminent la quantité maximale de données acceptées pour le traitement.

Vous pouvez voir ces erreurs pour les fichiers SARIF générés par CodeQL ou par des outils d’analyse tiers.

Données SARIFValeurs maximalesLimites d’affichage
Exécutions par fichier20None
Résultats par exécution25 000Seuls les 5 000 premiers résultats sont inclus, classés par ordre de gravité.
Règles par exécution25 000None
Extensions d’outil par exécution100None
Emplacements de flux de thread par résultat10 000Seuls les 1 000 principaux emplacements de flux de thread sont inclus, classés par ordre de priorité.
Emplacement par résultat1 000Seuls 100 emplacements sont inclus.
Étiquettes par règle20Seules 10 étiquettes sont incluses.

Pour plus d’informations sur la validation de votre fichier SARIF, consultez « Prise en charge de SARIF pour l’analyse du code ».

Correction des erreurs de limite souple

Lorsque les limites souples sont dépassées, code scanning affiche les informations de priorité les plus élevées. Souvent, vous n’avez pas besoin d’apporter de modifications à votre configuration code scanning. À mesure que votre équipe corrige les alertes, le nombre de résultats signalés dans chaque exécution est réduit jusqu’à ce qu’ils soient dans les limites souples et que tous les résultats soient affichés. Vous pouvez également utiliser les approches décrites pour les erreurs de limite stricte.

Correction de « Fichier SARIF d’analyse rejeté en raison des limites de résultats »

Il existe de nombreuses considérations et solutions potentielles pour réduire le nombre de résultats inclus dans un fichier de résultats SARIF. Pour des instructions détaillées, consultez « Le fichier de résultats SARIF est trop volumineux ».

Correction de « La ou les alertes dans le fichier SARIF ont dépassé les limites d’emplacement de flux de thread »

Vous pouvez configurer l’analyse pour limiter le nombre de chemins de flux de données inclus dans les résultats. Par défaut, 4 chemins de flux de données sont inclus pour chaque résultat.

  • Configuration avancée CodeQL pour code scanning : mettez à jour l’étape analyze pour limiter le nombre de chemins à un ou zéro maximum.

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3
      env: 
        CODEQL_ACTION_EXTRA_OPTIONS: '{"database":{"interpret-results":["--max-paths", 1]}}'
    
  • CodeQL CLI database analyze : mettez à jour la commande d’analyse de base de données pour inclure l’indicateur --max-paths=1. Pour plus d’informations, consultez « database analyze ».

Remarque : le paramètre max-paths affecte les résultats de toutes les requêtes de flux de données.

Correction de « Fichier SARIF d’analyse rejeté en raison des limites d’exécution »

L’approche la plus simple consiste à générer un nouveau fichier SARIF pour chaque exécution et à charger chaque fichier séparément. Vous ajoutez une « catégorie » à chaque résultat, ce qui permet à code scanning de stocker et d’afficher les résultats de manière appropriée. Pour plus d’informations, consultez « Prise en charge de SARIF pour l’analyse du code ».

Correction de « Fichier SARIF d’analyse rejeté en raison des limites de la règle »

Il existe deux approches possibles ici.

  1. Réduisez le nombre de règles que vous utilisez pour analyser le code. Pour plus d’informations, consultez « Définition de la suite de requêtes à exécuter » et « Exclusion d’une requête de l’analyse » dans « Fichier de résultats SARIF trop volumineux ».
  2. Exécutez l’analyse deux fois, à chaque fois avec un ensemble de règles différent, puis chargez les deux fichiers de résultats dans code scanning. Pour plus d’informations, consultez « Prise en charge de SARIF pour l’analyse du code ».

Correction de « Fichier SARIF d’analyse rejeté en raison des limites d’extension »

L’approche la plus simple consiste à créer un fichier SARIF distinct chaque fois que vous exécutez l’outil et que vous chargez chaque fichier séparément. Vous devrez peut-être également contacter le gestionnaire de l’outil. Pour plus d’informations, consultez « Prise en charge de SARIF pour l’analyse du code ».

L’analyse CodeQL ne doit pas générer cette erreur. Si vous voyez cette erreur lors de l’utilisation de l’action CodeQL ou CodeQL CLI, contactez Support GitHub pour nous en informer. Pour plus d’informations, consultez « Contacter le support GitHub ».

Correction de « Fichier SARIF d’analyse rejeté en raison des limites d’emplacement »

La meilleure façon de résoudre ce problème consiste généralement à identifier la requête qui signale un trop grand nombre d’emplacements et à l’exclure de l’analyse. Pour plus d'informations sur cette procédure, consultez « Le fichier de résultats SARIF est trop volumineux. »

Correction de « Fichier SARIF d’analyse rejeté en raison des limites d’étiquettes de la règle »

Vous devez mettre à jour le fichier SARIF ou le générateur afin que le tableau d’étiquettes signalé pour chaque objet reportingDescriptor soit inférieur à 10. Pour plus d’informations, consultez properties.tags[] dans « Prise en charge de SARIF pour l’analyse du code ».