Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. 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.

Configurar el escaneo de código en un repositorio

Puedes configurar el escaneo de código si agregas un flujo de trabajo a tu repositorio.

If you have write permissions to a repository, you can set up or configure escaneo de código for that repository.

El Escaneo de código se encuentra disponible si tienes una licencia de GitHub Advanced Security.

Nota: El Escaneo de código se encuentra en beta dentro de GitHub Enterprise Server 2.22. Para encontrar un lanzamiento de disponibilidad general del escaneo de código, mejora al último lanzamiento de GitHub Enterprise Server.

Nota: Tu administrador de sitio debe habilitar el escaneo de código para tu instancia de GitHub Enterprise Server antes de que puedas utilizar esta característica. Si quieres utilizar GitHub Actions para escanear tu código, el administrador de sitio también puede habilitar las GitHub Actions y configurar la infraestructura que se requiera. Para obtener más información, consulta "Configurar el escaneo de código en tu aplicativo."

Opciones para configurar el escaneo de código

Tú decides cómo generar las alertas del escaneo de código y qué herramientas utilizar a nivel de repositorio. GitHub Enterprise Server te proporciona compatibilidad total e integrada para el análisis de CodeQL y también es compatible con el análisis de herramientas de terceros. Para obtener más información, consulta la sección "Acerca deCodeQL".

Tipo de análisis Opciones para generar alertas
| CodeQL | Utilizando GitHub Actions (consulta la sección "[Configurar el escaneo de código utilizando acciones](/github/finding-security-vulnerabilities-and-errors-in-your-code/setting-up-code-scanning-for-a-repository#setting-up-code-scanning-using-actions)") o utilizando el Ejecutor de CodeQL en un sistema de integración continua (IC) de terceros (consulta la sección "[ejecutar el escaneo de código de CodeQL en tu sistema de IC](/github/finding-security-vulnerabilities-and-errors-in-your-code/running-codeql-code-scanning-in-your-ci-system)"). | Terceros | Utilizando GitHub Actions (consulta la sección "[Configurar el escaneo de código utilizando acciones](/github/finding-security-vulnerabilities-and-errors-in-your-code/setting-up-code-scanning-for-a-repository#setting-up-code-scanning-using-actions)") o generado externamente y cargado a GitHub Enterprise Server (consulta la sección "[Cargar un archivo SARFI a GitHub](/github/finding-security-vulnerabilities-and-errors-in-your-code/uploading-a-sarif-file-to-github)").|

Configurar el escaneo de código utilizando acciones

  1. En GitHub Enterprise Server, visita la página principal del repositorio.

  2. Debajo de tu nombre de repositorio, da clic en Seguridad. Pestaña de seguridad

  3. A la derecha de "alertas del Escaneo de código", haz clic en Configurar el escaneo de código. Botón de "Configurar el escaneo de código" a la derecha de "Escaneo de código" en el resumen de seguridad

  4. Debajod e "Iniciar con el escaneo de código", da clic en Configurar este flujo de trabajo en el Flujo de trabajo de análisis de CodeQL o en el flujo de trabajo de terceros. Botón de "Configurar este flujo de trabajo" debajo del encabezado de " Iniciar con el escaneo de código"

  5. Para personalizar la forma en que el escaneo de código escanea tu còdigo, edita el flujo de trabajo.

    Generalmente, puedes confirmar el Flujo de trabajo de análisis de CodeQL sin hacerle ningùn cambio. Sin embargo, muchos de los flujos de trabajo de terceros requieren de configuraciones adicionales, asì que lee los comentarios en el flujo de trabajo antes de confirmar.

    Para obtener más información, consulta "Configurar escaneo de código".

  6. Utiliza el menú desplegable deComenzar confirmación, y teclea un mensaje de confirmación. Iniciar confirmación

  7. Escoge si te gustaría confirmar directamente en la rama predeterminada, o crear una nueva rama y comenzar una solicitud de extracción. Escoger dónde confirmar

  8. Da clic en Confirmar archivo nuevo o en Proponer archivo nuevo.

En el Flujo de trabajo de análisis de CodeQL predeterminado, el escaneo de código se configura para analizar tu código cada vez que ya sea subas un cambio a la rama predeterminada o a cualquier rama protegida, o que levantes una solicitud de cambios contra la rama predeterminada. Como resultado, el escaneo de código comenzarà ahora.

Configuración del escaneo de código por lotes

Puedes configurar el escaneo de código en muchos repositorios al mismo tiempo utilizando un script. Para encontrar un ejemplo de un script que levanta solicitudes de cambio para agregar un flujo de trabajo de GitHub Actions a repositorios múltiples, consulta el repositorio jhutchings1/Create-ActionsPRs para ver cómo se hace con Powershell o el de nickliffen/ghas-enablement para los equipos que no tengan Powershell y les gustaría trabajar con NodeJS en su lugar.

Visualizar la salida de registro del escaneo de código

Después de configurar el escaneo de código para tu repositorio, puedes observar la salida de las acciones mientras se ejecutan.

  1. Debajo del nombre de tu repositorio, da clic en Acciones. Pestaña de acciones en la navegación del repositorio principal

    Veràs una lista que incluye una entrada para ejecutar el flujo de trabajo del escaneo de código. El texto de la entrada es el título que le diste a tu mensaje de confirmación.

    Lista de acciones que muestran el flujo de trabajo del escaneo de código

  2. Da clic en la entrada para el flujo de trabajo de escaneo de código.

  3. Da clic en el nombre del job situado a la izquierda. Por ejemplo, Analizar (IDIOMA).

    Registro de salida del flujo de trabajo del escaneo de código

  4. Revisa la salida de registro de las acciones en este flujo de trabajo conforme se ejecutan.

  5. Una vez que todos los jobs se completen, puedes ver los detalles de cualquier alerta del escaneo de código que se hayan identificado. Para obtener más información, consulta la sección "Administrar las alertas de escaneo de código para tu repositorio".

Nota: Si levantaste una solicitud de cambios para agregar el flujo de trabajo del escaneo de código a las alertas del repositorio, las alertas de esa solicitud de cambios no se mostraràn directamente en la pàgina del Escaneo de código hasta que se fusione dicha solicitud. Si se encontrò alguna de las alertas, puedes verlas antes de que se fusione la solicitud de extracciòn dando clic en el enlace de n alertas encontradas en el letrero de la pàgina del Escaneo de código.

Da clic en el enlace de "n alertas encontradas" link

Entender las verificaciones de la solicitud de cambios

Cada flujo de trabajo del escaneo de código que configuras para que se utilice en las solicitudes de cambios siempre tiene por lo menos dos entradas listadas en la sección de verificaciones de una solicitud de cambios. Solo hay una entrada para cada uno de los jobs de anàlisis en el flujo de trabajo y uno final para los resultados del anàlisis.

Los nombres de las verificaciones del anàlisis del escaneo de código se expresan en la forma: "NOMBRE DE LA HERRAMIENTA / NOMBRE DEL JOB (ACTIVADOR)." Por ejemplo, para CodeQL, el anàlisis de còdigo en C++ tiene la entrada "CodeQL / Analyze (cpp) (pull_request)". Puedes dar clic en Detalles en una entrada de anàlisis de escaneo de código para ver los datos de registro. Esto te permite depurar un problema si falla el job de anàlisis. Por ejemplo, para el anàlisis del escaneo de código de los lenguajes compilados, esto puede suceder si la acciòn no puede compilar el còdigo.

Verificaciones de solicitudes de cambios del escaneo de código

Cuando se completan los jobs del escaneo de código, GitHub averigua si la solicitud de cambios agregò alguna alerta y agrega la entrada "resultados del Escaneo de código / NOMBRE DE LA HERRAMIENTA" a la lista de verificaciones. Despuès de que se lleve a cabo el escaneo de código por lo menos una vez, puedes dar clic en Detalles para ver los resultados del anàlisis. Si utilizaste una solicitud de cambios para agregar el escaneo de código al repositorio, veràs inicialmente un mensaje de "Missing analysis" cuando des clic en la parte de Detalles de la verificaciòn "resultados del Escaneo de código / NOMBRE DE LA HERRAMIENTA".

Falta el análisis para el mensaje de confirmación

Razones para recibir un mensaje de "missing analysis"

Despuès de que el escaneo de código analiza el còdigo en una solicitud de cambios, necesita comparar el anàlisis de la rama de tema (la rama que utilizaste para crear la silicolicitud de cambios) con el anàlisis de la rama base (la rama en la cual quieres fusionar la solicitud de cambios). Esto permite al escaneo de código calcular què alertas introdujo la solicitud de cambios recientemente, cuàles ya estaban presentes en la rama base y si es que cualquiera de las alertas existentes se arreglan con los cambios que lleva la solicitud. Inicialmente, si utilizas una solicitud de cambios para agregar el escaneo de código a un repositorio, la rama base no se ha analizado, asì que no es posible calcular estos detalles. En este caso, cuando das clic en la verificaciòn de los resultados de la solicitud de cambios, veràs el mensaje "Missing analysis for base commit SHA-HASH".

Existen otras situaciones en donde puede que no haya un anàlisis para la ùltima confirmaciòn hacia la rama base para una solicitud de cambios. Entre estas se incluyen cuando:

  • La solicitud de cambios se levantó contra una rama diferente a la predeterminada y ésta no se ha analizado.

    Para verificar si se ha escaneado una rama, ve a la pàgina de Escaneo de código, da clic en el menù desplegable de Rama y selecciona la rama relevante.

    Elige una rama del menú desplegable de Rama

    La soluciòn a esta situaciòn es agregar el nombre de esta rama base a las especificaciones de on:push y on:pull_request en el flujo de trabajo del escaneo de código en esta rama y luego hacer un cambio que actualice la solicitud de cambios abierta que quieres escanear.

  • La ùltima confirmaciòn en la rama base para la solicitud de cambios se està analizando actualmente y dicho anàlisis no està disponible aùn.

    Espera algunos minutos y luego sube un cambio a la solicitud de extracciòn para reactivar el escaneo de código.

  • Ocurriò un error mientras se analizaba la ùltima confirmaciòn en la rama base y el anàlisis para esa confirmaciòn no està disponible.

    Fusiona un cambio trivial en la rama base para activar el escaneo de código en esta ùltima confirmaciòn, luego sube un cambio a la solicitud de extracciòn para volver a activar el escaneo de código.

Pasos siguientes

Después de configurar el escaneo de código y permitir que se completen sus acciones, puedes: