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
  Repository is at risk of exceeding the alert limit.

# 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
  All analysis uploads blocked due to alert limit

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 pour la troncation des données
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.
Limite d’alerte1 000 000Aucune

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 ».

Correction de « Le référentiel risque de dépasser la limite d’alerte » et « Tous les chargements d’analyse bloqués en raison de la limite d’alerte »

Cette limite est déclenchée lorsqu’un référentiel produit plus d’alertes uniques que ce qui pourrait jamais exister dans le cadre d’une configuration code scanning fonctionnelle. Il est possible que cela soit dû à la production d’un outil tiers utilisé et qu’il ne s’agisse peut-être pas d’une erreur de configuration utilisateur. Une erreur de configuration utilisateur et une erreur du fournisseur d’outils sont des causes possibles.

Quelques étapes permettent de résoudre ce problème.

  1. Examinez les fichiers SARIF que vous produisez pour identifier la cause du classement des alertes code scanning comme distinctes sur l’ensemble des exécutions d’un outil. Cela se produit généralement en raison d’un des problèmes suivants :
    • La propriété SARIF artifactLocation.uri (chemin de fichier dans l’interface utilisateur d’alerte code scanning) n’est pas déterministe en raison de l’inclusion de répertoires temporaires ou de noms de fichiers générés.
    • L’outil utilisé produit des noms de règles SARIF ou des valeurs artifactLocation object uri property instables, ce qui est généralement le résultat de l’utilisation de codes de hachage (à partir de validations Git ou de SHA d’image Docker, par exemple) ou d’autres sources de données qui changent entre les exécutions ou les environnements.
  2. Une fois que vous avez identifié la source du problème, vous devez mettre à jour votre configuration en conséquence et contacter le fournisseur de l’outil si son outil est la source des résultats SARIF instables.
  3. Arrêtez le chargement des résultats de l’analyse du code pour tous les outils tiers qui produisent un résultat non déterministe jusqu’à ce que le problème soit résolu par le fournisseur d’outil.

Étapes supplémentaires pour « Tous les chargements d’analyse bloqués en raison d’une limite d’alerte »

Outre la correction de la configuration de l’analyse du code et la suppression ou la correction du résultat d’outils tiers, vous devez contacter nous via le portail de support GitHub pour vous aider à supprimer les alertes pour toutes les configurations incriminées.

Il n’existe aucune méthode en libre-service pour supprimer des alertes pour le moment. Il est donc nécessaire de contacter le service clientèle pour pouvoir réactiver l’analyse du code.