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 SARIF | Valores máximos | Límites de truncamiento de datos |
---|---|---|
Ejecuciones por archivo | 20 | None |
Resultados por ejecución | 25 000 | Solo se incluirán los 5000 resultados principales, priorizados por gravedad. |
Reglas por ejecución | 25 000 | None |
Extensiones de herramienta por ejecución | 100 | None |
Ubicaciones de flujo de subprocesos por resultado | 10 000 | Solo se incluirán las 1000 ubicaciones principales de flujo de subprocesos mediante la priorización. |
Ubicación por resultado | 1,000 | Solo se incluirán 100 ubicaciones. |
Etiquetas por regla | 20 | Solo se incluirán 10 etiquetas. |
Límite de alertas | 1 000 000 | Ninguno |
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».
Nota: 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 obtener más información, vea «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í.
- 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".
- Ejecutar el análisis dos veces, cada vez con un conjunto diferente de reglas y cargar ambos archivos de resultados en code scanning. Para obtener más información, vea «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 obtener más información, vea «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 obtener más información, vea «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.
- 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.
- La propiedad
- 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.
- 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.