Esta versión de GitHub Enterprise se discontinuará el 2022-02-16. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

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

Cuando el escaneo de código identifica un problema en una solicitud de extracción, puedes revisar el código que se ha resaltado y resolver la alerta.

If you have read permission for a repository, you can see annotations on pull requests. With write permission, you can see detailed information and resolve escaneo de código alerts for that repository.

El Escaneo de código se encuentra disponible si tienes una licencia de GitHub Advanced Security. Para obtener más información, consulta la sección "Acerca de GitHub Advanced Security".

Acerca de los resultados del escaneo de código en las solicitudes de cambios

En los repositorios donde se configura el escaneo de código como una verificación de solicitudes de cambios, éste verificará el código en dicha solicitud. Predeterminadamente, esto se limita a solicitudes de cambios que apuntan a la rama predeterminada, pero puedes cambiar esta configuración dentro de GitHub Actions o en un sistema de IC/EC de terceros. Si el fusionar los cambios puede introducir alertas nuevas de escaneo de código a la rama destino, éstas se reportarán como resultados de verificación en la solicitud de cambios. Las alertas también se muestran como anotaciones en la pestaña de Archivos que cambiaron de la solicitud de cambios. Si tienes permisos de escritura para el repositorio, puedes ver cualquier alerta del escaneo de código existente en la pestaña de Seguridad. Para obtener más información sobre las alertas de los repositorios, consulta la sección "Administrar las alertas del escaneo de código para tu repositorio".

Si tu solicitud de cambios apunta a una rama protegida que utiliza el escaneo de código y el propietario del repositorio configuró las verificaciones de estado requeridas, entonces la verificación de los "resultados del Escaneo de código" debe pasar antes de que puedas fusionar la solicitud de cambios. Para obtener más información, consulta"Acerca de las ramas protegidas".

Acerca del escaneo de código como una verificación de solicitudes de cambio

Hay muchas opciones para configurar el escaneo de código como una verificación de solicitudes de cambio, así que la configuración de cada repositorio variará y algunas tendrán más de una verificación.

Verificación de resultados de Escaneo de código

Para todas las configuraciones del escaneo de código, la verificación que contiene los resultados del escaneo de código es: resultados de Escaneo de código. Los resultados para cada herramienta de análisis se muestran por separado. Cualquier alerta nueva que ocasionen los cambios en la solicitud de cambios se muestran como anotaciones.

Fallos de verificación de resultados de Escaneo de código

Si la verificación de los resultados del escaneo de código encuentra cualquier problema con una gravedad de error la verificación fallará y el error se reportará en los resultados de verificación. Si todos los resultados que encontró el escaneo de código tienen gravedades menores, las alertas se tratarán como advertencias o notas y la verificación tendrá éxito.

Verificación fallida del escaneo de código en una solicitud de cambios

Otras verificaciones del escaneo de código

Dependiendo de tu configuración, podrías ver verificaciones adicionales ejecutándose en las solicitudes de cambios con el escaneo de código configurado. A menudo, estos son flujos de trabajo que analizan el código o que cargan resultados del escaneo de código. Estas verificaciones son útiles para solucionar problemas cuando el análisis los presenta.

Por ejemplo, si el repositorio utiliza el Flujo de trabajo de análisis de CodeQL, se ejecutará una verificación de CodeQL / Analyze (LANGUAGE) para cada lenguaje antes de que se ejecute la verificación de resultados. La verificación del análisis podría fallar si existieran problemas de configuración o si la solicitud de cambios impide la compilación para un lenguaje que el análisis necesita compilar (por ejemplo, C/C++, C# o Java).

Así como con otras verificaciones de solicitudes de cambios, puedes ver todos los detalles de la falla de la verificación en la pestaña de Verificaciones. Para obtener más información acerca de la configuración y la soución de problemas, consulta la sección "Configurar el escaneo de código" o "Solucionar problemas del flujo de trabajo de CodeQL".

Visualizar una alerta en tu solicitud de cambios

Puedes ver cualquier alerta del escaneo de código que se haya introducido en una solicitud de cambios si muestras la pestaña de Archivos que cambiaron. Cada alerta se muestra como una anotación en las líneas de código que la activaron. La gravedad de la alerta se muestra en la anotación.

Anotación de alerta dentro de un diff de una solicitud de cambios

Si tienes permisos de escritura para el repositorio, algunas anotaciones contendrán enlaces con un contexto adicional de la alerta. En el ejemplo anterior del análisis de CodeQL, puedes dar clic en valor proporcionado por el usuario para ver en dónde ingresarían los datos no confiables dentro del flujo de datos (a esto se le conoce como la fuente). En este caso, también puedes ver la ruta completa desde la fuente hasta el código que utiliza los datos (el consumidor de datos) dando clic en Mostrar rutas. 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 utilizando CodeQL, consulta la sección "Acerca del análisis de flujo de datos".

Para ver más información sobre una alerta, los usuarios con permisos de escritura pueden dar clic en el enlace de Mostrar más detalles 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.

En la vista detallada de una alerta, algunas herramientas del escaneo de código, como el análisis de CodeQL, también incluyen una descripción del problema y un enlace de Mostrar más para orientarte sobre cómo arreglar tu código.

Descripción de alerta y enlace para mostrar más información

Arreglar una alerta en tu solicitud de cambios

Cualquiera con acceso de subida a una solicitud de cambios puede arreglar una alerta del escaneo de código, la cual se identifique en dicha solicitud. 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 tienes permisos de escritura en el repositorio, el botón de Descartar está disponible en las anotaciones de código y en el resumen de alertas. Cuando das clic en Descartar se te pedirá elegir una razón para cerrar la alerta.

Elegir una razón para descartar una 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.

Si descartas una alerta de CodeQL como un resultado falso positivo, por ejemplo, porque el código utiliza una biblioteca de sanitización que no es compatible, considera colaborar con el repositorio de CodeQL y mejorar el análisis. Para obtener más información acerca de CodeQL, consulta la sección "Contribuir con CodeQL".

Para obtener más información acerca de descartar alertas, consulta la sección "Administrar alertas del escaneo de código para tu repositorio".

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.