Skip to main content

Clasificar las alertas del escaneo de código en las solicitudes de cambios

Cuando code scanning identifica un problema en una solicitud de incorporación de cambios, puede revisar el código resaltado y resolver la alerta.

¿Quién puede utilizar esta característica?

Usuarios con acceso de lectura

Los resultados de code scanning pueden aparecer, en función de la configuración, como resultados de comprobación y anotaciones en pull requests. Para más información, consulta Acerca de las alertas de análisis de código.

Visualización de los resultados de la code scanning comprobación

Para todas las configuraciones de code scanning, la comprobación que contiene los resultados de code scanning es: Code scanning results. Los resultados para cada herramienta de análisis se muestran por separado. Cualquier alerta nueva en las líneas de código cambiadas en la solicitud de cambios se muestran como anotaciones.

Para ver el conjunto de alertas completo de la rama analizada, haz clic en Ver todas las alertas de rama. Se abre la vista completa de alertas en donde puede filtrar todas las de una rama por tipo, gravedad, etiqueta, etc. Para más información, consulte Evaluación de alertas de análisis de código para el repositorio.

Captura de pantalla de la comprobación de resultados de Code scanning en una solicitud de cambios. El vínculo "Ver todas las alertas de rama" está resaltado con un contorno naranja oscuro.

Administración de niveles de gravedad para errores de comprobación

Si la code scanning comprobación de resultados encuentra algún problema con una gravedad de error, critical o high, la comprobación falla y se notifica el error en los resultados de la comprobación. Si todos los resultados encontrados por code scanning tienen menos gravedades, las alertas se tratan como advertencias o notas y la comprobación se realiza correctamente.

Captura de pantalla del cuadro de combinación para una solicitud de incorporación de cambios. La comprobación "Resultados del análisis de código/CodeQL" tiene "1 nueva alerta, incluida 1 seguridad de gravedad alta v..."

Puedes invalidar el comportamiento predeterminado en la configuración del repositorio. Para ello, especifica los niveles de gravedad y la gravedad de seguridad que causarán un error en la comprobación de la solicitud de incorporación de cambios. Para más información, consulta Opciones de configuración de flujo de trabajo para el examen de código.

Diagnóstico de problemas con la code scanning configuración

En función de tu configuración, puede que veas comprobaciones adicionales ejecutándose en pull requests con code scanning configurado. Normalmente son flujos de trabajo que analizan el código o que cargan code scanning los resultados. Estas verificaciones son útiles para solucionar problemas cuando el análisis los presenta.

Por ejemplo, si el repositorio utiliza la Flujo de trabajo de análisis de CodeQL comprobación aCodeQL / Analyze (LANGUAGE), se ejecuta para cada idioma antes de que se realice la comprobación de los resultados. Es posible que se produzca un error en la comprobación de análisis si hay problemas de configuración o si la solicitud de incorporación de cambios interrumpe la compilación de un lenguaje que compila el análisis (por ejemplo, C/C++, C#, Go, Java, Kotlin, Rust (versión preliminar pública), y Swift).

Al igual que con otras comprobaciones de solicitudes de cambios, puede ver detalles completos del error de comprobación en la pestaña Comprobaciones. Para más información sobre la configuración y la solución de problemas, consulte Opciones de configuración de flujo de trabajo para el examen de código o Solución de problemas de análisis de código.

Visualizar una alerta en tu solicitud de cambios

Puede ver las code scanning alertas que están dentro del diff de los cambios introducidos en una solicitud de extracción al ver la pestaña Conversación. Code scanning publica una revisión de solicitud de extracción que muestra cada alerta como una anotación en las líneas de código que desencadenaron la alerta. Puedes comentar las alertas, descartarlas y ver sus rutas de acceso directamente en las anotaciones. Para ver los detalles completos de una alerta, haz clic en el vínculo "Mostrar más detalles", lo que te llevará a la página de detalles de la alerta.

Captura de pantalla de una anotación de alerta en la pestaña "Conversaciones" de una solicitud de cambios. El vínculo "Mostrar más detalles" está resaltado en naranja oscuro.

También puede ver todas las code scanning alertas que están dentro de las diferencias de los cambios introducidos en el pull request en la pestaña Archivos modificados.

Si agrega una nueva configuración de examen de código en la solicitud de incorporación de cambios, verá un comentario en la solicitud de incorporación de cambios que le dirige a la Security pestaña del repositorio para que pueda ver todas las alertas en la rama de solicitud de incorporación de cambios. Para obtener más información sobre cómo ver las alertas de un repositorio, consulte Evaluación de alertas de análisis de código para el repositorio.

Si tienes permisos de escritura para el repositorio, algunas anotaciones contendrán enlaces con un contexto adicional de la alerta. En el ejemplo anterior, desde el análisis de CodeQL, puede hacer clic en valor proporcionado por el usuario para ver dónde entran los datos no fiables en el flujo de datos (esto se conoce como el origen). En este caso, también puede ver la ruta completa desde el origren hasta el código que utiliza los datos (el receptor) haciendo clic en Show paths. Esto facilita la revisión, ya sea que los datos no sean confiables o que el análisis falle en reconocer un paso de sanitización de datos entre la fuente y el consumidor de datos. Para obtener información sobre cómo analizar el flujo de datos mediante CodeQL, consulte Acerca del análisis del flujo de datos.

Para ver más información sobre una alerta, los usuarios con permisos de escritura pueden hacer clic en el vínculo Show more details que se muestra en la anotación. Esto te permite ver todo el contexto y los metadatos que proporciona la herramienta en una vista de alertas. En el siguiente ejemplo, puedes ver que las etiquetas muestran la severidad, tipo y las enumeraciones de los puntos débiles comunes (los CWE) del problema. La vista también muestra qué confirmación introdujo el problema.

El estado y los detalles de la página de alertas solo reflejan el estado de la alerta en la rama predeterminada del repositorio, incluso si la alerta existe en otras ramas. Puede ver el estado de la alerta en ramas no predeterminadas en la sección Ramas afectadas del lado derecho de la página de alertas. Si una alerta no existe en la rama predeterminada, el estado de la alerta se mostrará como "en la solicitud de incorporación de cambios" o "en la rama", y tendrá un color gris. En la sección Desarrollo se muestran ramas vinculadas y solicitudes de incorporación de cambios que corregirán la alerta.

En la vista detallada de una alerta, algunas code scanning herramientas, como CodeQL el análisis, también incluyen una descripción del problema y un vínculo Mostrar más para obtener instrucciones sobre cómo corregir el código.

Captura de pantalla que muestra la descripción de una alerta de code scanning. El vínculo con la etiqueta "Mostrar más" está resaltado con un contorno naranja oscuro.

Realización de comentarios sobre una alerta en una solicitud de incorporación de cambios

Puede comentar cualquier code scanning alerta que aparezca en una solicitud de incorporación de cambios. Las alertas aparecen como anotaciones en la pestaña Conversación de una solicitud de cambios, como parte de una revisión de la solicitud de cambios, y también se muestran en la pestaña Archivos modificados.

Puede optar por requerir que todas las conversaciones de una solicitud de incorporación de cambios, incluidas las code scanning de alertas, se resuelvan antes de que se pueda combinar una solicitud de incorporación de cambios. Para más información, consulta Acerca de las ramas protegidas.

Arreglar una alerta en tu solicitud de cambios

Cualquier persona con acceso de inserción a una solicitud de incorporación de cambios puede corregir una code scanning alerta identificada en esa solicitud de incorporación de cambios. Si confirmas cambios en la solicitud de extracción, esto activará una ejecución nueva de las verificaciones de dicha solicitud. Si tus cambios arreglan el problema, la alerta se cierra y la anotación se elimina.

Descartar una alerta en tu solicitud de cambios

Una forma alterna de cerrar una alerta es descartarla. Puedes descartar una alerta si no crees que necesite arreglarse. Por ejemplo, un error en el código que se utiliza únicamente para hacer pruebas, o cuando el esfuerzo de areglar el error es mayor que el beneficio potencial de mejorar el código. Si tiene permiso de escritura para el repositorio, hay un botón Descartar alerta disponible en anotaciones de código y en el resumen de alertas. Al hacer clic en Descartar alerta, se te pedirá que elijas un motivo para cerrar la alerta.

Captura de pantalla de un error de comprobación para el análisis de código. El botón "Descartar alerta" está resaltado en naranja oscuro. Se muestra la lista desplegable "Descartar alerta".

Es importante elegir la razón adecuada del menú desplegable, ya que esto puede afectar si la consulta continuará incluyéndose en los análisis futuros. Opcionalmente, puede comentar un descarte para registrar el contexto del descarte de una alerta. El comentario de descarte se agrega a la escala de tiempo de la alerta y se puede usar como justificación durante el proceso de auditoría y creación de informes. Puedes recuperar o establecer un comentario mediante la API REST de examen de código. El comentario se incluye en dismissed_comment para el punto de conexión alerts/{alert_number}. Para más información, consulta Puntos de conexión de la API de REST para el análisis de código.

Si descartas una alerta de CodeQL como consecuencia de un resultado de falso positivo, por ejemplo, porque el código utiliza una biblioteca de sanitización que no es compatible, considera contribuir con el repositorio de CodeQL y mejorar el análisis. Para más información sobre CodeQL, consulta Contribución a CodeQL.

Para obtener más información sobre cómo descartar alertas, consulta Resolución de alertas de análisis de código.