Skip to main content

Los resultados de SARIF superan uno o más límites

Aprende a resolver problemas si code scanning ha rechazado un archivo SARIF porque se han superado uno o varios límites.

Acerca de los límites de code scanning en los resultados de 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 establece dos tipos de límites en los campos de los archivos de resultados SARIF.

  • Límites flexibles que determinan la cantidad de datos que se almacenan y se muestran a los usuarios.
  • Límites estrictos que determinan la cantidad máxima de datos aceptados para su procesamiento.

Estos errores pueden aparecer en los archivos SARIF generados por CodeQL o por herramientas de análisis de terceros.

Datos de SARIFValores máximosLímites de truncamiento de datos
Ejecuciones por archivo20None
Resultados por ejecución25 000Solo se incluirán los 5000 resultados principales, priorizados por gravedad.
Reglas por ejecución25 000None
Extensiones de herramienta por ejecución100None
Ubicaciones de flujo de subprocesos por resultado10 000Solo se incluirán las 1000 ubicaciones principales de flujo de subprocesos mediante la priorización.
Ubicación por resultado1,000Solo se incluirán 100 ubicaciones.
Etiquetas por regla20Solo se incluirán 10 etiquetas.
Límite de alertas1 000 000Ninguno

Para más información sobre cómo validar el archivo SARIF, consulta Soporte de SARIF para escaneo de código.

Corrección de errores de límite flexible

Cuando se superan los límites flexibles, code scanning muestra la información de prioridad más alta. A menudo no es necesario realizar ningún cambio en la configuración de code scanning. A medida que el equipo corrige las alertas, el número de resultados notificados en cada ejecución se reducirá hasta que se encuentren dentro de los límites flexibles y se muestren todos los resultados. O bien, puedes usar los enfoques descritos para los errores de límite estricto.

Corrección del "archivo SARIF de análisis rechazado debido a los límites de resultados"

Hay muchas consideraciones y posibles soluciones para reducir el número de resultados incluidos en un archivo SARIF. Para más información, consulta El archivo de resultados SARIF es demasiado grande.

Corrección de "Las alertas en el archivo SARIF superaron los límites de ubicación del flujo de subprocesos"

Puedes configurar el análisis para limitar el número de rutas de acceso de flujo de datos incluidas en los resultados. De forma predeterminada, se incluyen 4 rutas de acceso de flujo de datos para cada resultado.

  • Configuración avanzada de CodeQL para code scanning: actualice el paso analyze para limitar el número de rutas de acceso a un máximo de uno o cero.

    - 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: actualice el comando de análisis de la base de datos para incluir la marca --max-paths=1. Para obtener más información, vea «database analyze».

Note

El valor max-paths afecta a los resultados de todas las consultas de flujo de datos.

Corrección del "archivo SARIF de análisis rechazado debido a los límites de ejecución"

El enfoque más sencillo es generar un nuevo archivo SARIF para cada ejecución y cargar cada archivo por separado. Puedes agregar una "categoría" a cada resultado y esto permite a code scanning almacenar y mostrar los resultados correctamente. Para más información, consulta Soporte de SARIF para escaneo de código.

Corrección del "archivo SARIF de análisis rechazado debido a los límites de reglas"

Hay dos enfoques posibles aquí.

  1. Reducir el número de reglas que se usan para analizar el código. Para más información, consulta Definición del conjunto de consultas que se va a ejecutar y Exclusión de una consulta del análisis en "Archivo de resultados SARIF demasiado grande".
  2. Ejecutar el análisis dos veces, cada vez con un conjunto diferente de reglas y cargar ambos archivos de resultados en code scanning. Para más información, consulta Soporte de SARIF para escaneo de código.

Corrección del "archivo SARIF de análisis rechazado debido a los límites de extensión"

El enfoque más sencillo es crear un archivo SARIF independiente cada vez que ejecute la herramienta y cargar cada archivo por separado. Es posible que también tenga que ponerse en contacto con el responsable de mantenimiento de la herramienta. Para más información, consulta Soporte de SARIF para escaneo de código.

El análisis de CodeQL no genera este error. Si aparece este error al usar la acción CodeQL o CodeQL CLI, debes ponerte en contacto con Soporte de GitHub e informarnos. Para más información, consulta Contactar al Soporte de GitHub.

Corrección del "archivo SARIF de análisis rechazado debido a los límites de ubicación"

La mejor manera de resolver este problema suele ser identificar la consulta que notifica demasiadas ubicaciones y excluirla del análisis. Para más información sobre cómo hacer esto, consulta El archivo de resultados SARIF es demasiado grande.

Corrección del "archivo SARIF de análisis rechazado debido a los límites de etiquetas de reglas"

Debes actualizar el archivo SARIF o el generador para que la matriz de etiquetas notificadas para cada objeto reportingDescriptor sea inferior a 10. Para más información, consulta properties.tags[] en Soporte de SARIF para escaneo de código.

Corrección de "El repositorio está en riesgo de superar el límite de alertas" y "Se han bloqueado todas las cargas de análisis debido al límite de alertas"

Este límite se desencadena cuando un repositorio genera más alertas únicas de las que debería haber debido a una configuración de code scanning que funciona correctamente. Es posible que sea resultado de una herramienta de terceros que se está usando y no un error de configuración del usuario. No obstante, tanto el error de configuración del usuario como el error del proveedor de la herramienta son causas posibles.

Existen varios pasos para corregir este problema.

  1. Examine los archivos SARIF que está generando para identificar la causa de que las alertas de code scanning se clasifiquen de manera distinta en las ejecuciones de una herramienta. Esto suele indicar uno de los siguientes problemas:
    • La propiedad artifactLocation.uri del SARIF (ruta del archivo en la interfaz de usuario de alertas de code scanning) no es determinista debido a la inclusión de directorios temporales o nombres de archivo generados.
    • La herramienta que se ha usado genera valores de artifactLocation object uri property o nombres de reglas de SARIF inestables, que normalmente son resultado de usar hashes (de confirmaciones de Git o SHA de imágenes de docker, por ejemplo) u otros orígenes de datos que cambian entre ejecuciones o entornos.
  2. Cuando haya identificado el origen del problema, debe actualizar la configuración en consecuencia y ponerse en contacto con el proveedor de la herramienta, si la herramienta es el origen de los resultados de SARIF inestables.
  3. Detenga la carga de los resultados del análisis de código de cualquier herramienta de terceros que genere resultados no deterministas hasta que el proveedor de la herramienta la haya corregido.

Pasos adicionales para "Se han bloqueado todas las cargas de análisis debido al límite de alertas"

Además de corregir la configuración de análisis de código y eliminar o corregir la salida de las herramientas de terceros, deberá ponerse en contacto con con nosotros a través del Soporte técnico de GitHub para que le ayude a eliminar las alertas de cualquier configuración incorrecta.

Por el momento no existe ningún método de autoservicio para eliminar las alertas, por lo que es necesario ponerse en contacto con el servicio de asistencia al cliente para poder volver a habilitar el análisis de código.