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 para todos los repositorios públicos y para los privados que pertenecen a organizaciones en donde se habilitó la GitHub Advanced Security. Para obtener más información, consulta la sección "Acerca de GitHub Advanced Security".

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 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 del escaneo de código".

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 ejecutando el análisis de CodeQL en un sistema de integración contínua (IC) de terceros (consulta la sección "[Acerca del escaneo de código de CodeQL en tu sistema de IC](/code-security/secure-coding/about-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 (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

El utilizar acciones para ejecutar el escaneo de código utilizará minutos. Para obtener más información, consulta la sección "Acerca de la facturación para GitHub Actions".

  1. En GitHub, 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. Si falta el escaneo de código, necesitas pedir al propietario de la organización o adminsitrador del repositorio que habilite la GitHub Advanced Security. Para obtener más información, consulta las secciones "Administrar la configuración de seguridad y análisis en tu organización" o "Administrar la configuración de seguridad y análisis en tu repositorio". 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. "Set up this workflow" button under "Get started with escaneo de código" headingLos flujos de trabajo solo se muestran si son relevantes para los lenguajes de programación que se detectan en el repositorio. El Flujo de trabajo de análisis de CodeQL siempre se muestra, pero el botón de "Configurar este flujo de trabajo" solo se habilita si el análisis de CodeQL es compatible con los lenguajes presentes en el repositorio.

  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.

The on:pull_request and on:push triggers for code scanning are each useful for different purposes. For more information, see "Scanning pull requests" and "Scanning on push."

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. Si te gustaría utilizar un script para levantar solicitudes de cambios que agreguen un flujo de trabajo de GitHub Actions a varios repositorios, consulta el repositorio de jhutchings1/Create-ActionsPRs para encontrar un ejemplo utilizando Powershell o el de nickliffen/ghas-enablement para los equipos que no tengan Powershell y quieran utilizar 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. If you used a pull request to add escaneo de código to the repository, you will initially see an "Analysis not found" message when you click Details on the "Escaneo de código results / TOOL NAME" check.

Analysis not found for commit message

The table lists one or more categories. Each category relates to specific analyses, for the same tool and commit, performed on a different language or a different part of the code. For each category, the table shows the two analyses that escaneo de código attempted to compare to determine which alerts were introduced or fixed in the pull request.

For example, in the screenshot above, escaneo de código found an analysis for the merge commit of the pull request, but no analysis for the head of the main branch.

Reasons for the "Analysis not found" message

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. In this case, when you click through from the results check on the pull request you will see the "Analysis not found" message.

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:

¿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.