Nota: El administrador del sitio debe habilitar code scanning para tu instancia de GitHub Enterprise Server para 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, vea «Configurar el escaneo de código para tu aplicativo».
Opciones para configurar code scanning
Tú decides cómo generar las alertas del code scanning 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 más información, consulta las viñetas siguientes y "Acerca del examen de código".
-
CodeQL : usa GitHub Actions (consulta a continuación) o ejecuta el análisis de CodeQL en un sistema de integración continua (CI) de terceros (consulta "Acerca del escaneo de código de CodeQL en tu sistema de IC").
-
Terceros: usa GitHub Actions o herramientas de terceros y carga los resultados a GitHub Enterprise Server (consulta "Subir un archivo SARIF a GitHub").
Nota: En este artículo se describen las características disponibles con la versión de la acción CodeQL y el paquete CodeQL CLI asociado que se incluyen en la versión inicial de esta versión de GitHub Enterprise Server. Si en la empresa se usa una versión más reciente de la acción CodeQL, consulta la versión de GitHub Enterprise Cloud de este artículo para obtener información sobre las características más recientes. Para obtener información sobre el uso de la versión más reciente, consulte "Configuración del análisis de código para el dispositivo".
Configuración manual de code scanning
-
En tu instancia de GitHub Enterprise Server, navega a la página principal del repositorio. 1. En el nombre del repositorio, haz clic en Seguridad. Si no puedes ver la pestaña "Seguridad", selecciona el menú desplegable y, a continuación, haz clic en Seguridad.
-
A la derecha de "Alertas de Code scanning", haga clic en Configurar code scanning . Si falta "Alertas de code scanning", debe pedir a un propietario de la organización o administrador del repositorio que habilite GitHub Advanced Security. Para más información, consulte "Administrar la configuración de seguridad y análisis de su organización" o "Administración de la configuración de seguridad y análisis para el repositorio".
-
En "Comenzar con code scanning", haga clic en Configurar este flujo de trabajo en Flujo de trabajo de análisis de CodeQL o en un flujo de trabajo de terceros.
Los flujos de trabajo solo se muestran si son pertinentes para los lenguajes de programación detectados en el repositorio. El Flujo de trabajo de análisis de CodeQL siempre se muestra, pero el botón "Configurar este flujo de trabajo" solo se habilita si el análisis de CodeQL es compatible con los lenguajes presentes en el repositorio.
-
Para personalizar la forma en que el code scanning 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. Pero muchos de los flujos de trabajo de terceros necesitan una configuración adicional, así que lea los comentarios del flujo de trabajo antes de confirmar.
Para obtener más información, vea «Personalización del examen de código».
-
Haz clic en Confirmar cambios... para mostrar el formulario de confirmación de cambios.
-
En el campo de mensaje de confirmación, escribe un mensaje de confirmación.
-
Elija si quiere confirmar directamente en la rama predeterminada o crear una rama e iniciar una solicitud de incorporación de cambios.
-
Haga clic en Commit new file (Confirmar nuevo archivo) o Propose new file (Proponer nuevo archivo).
En el Flujo de trabajo de análisis de CodeQL sugerido, el code scanning se configura para analizar tu código cada vez que envíes un cambio a la rama predeterminada o a cualquier rama protegida, o que emitas una solicitud de incorporación cambios contra la rama predeterminada. Como resultado, el code scanning comenzarà ahora.
Los valores on:pull_request
y on:push
que se desencadenan para el examen de código son útiles para distintos propósitos. Para obtener más información, vea «Personalización del examen de código».
Configuración masiva de code scanning
Puedes configurar el code scanning en muchos repositorios al mismo tiempo mediante un script. Si quiere usar un script para generar solicitudes de incorporación de cambios que agreguen un flujo de trabajo de GitHub Actions a varios repositorios, vea el repositorio jhutchings1/Create-ActionsPRs
para obtener un ejemplo mediante PowerShell, o bien nickliffen/ghas-enablement
para equipos que no tienen PowerShell y en su lugar quieren usar NodeJS.
Visualizar la salida de registro del code scanning
Después de configurar el code scanning para tu repositorio, puedes observar la salida de las acciones conforme se ejecutan.
-
En el nombre del repositorio, haz clic en Acciones.
Veràs una lista que incluye una entrada para ejecutar el flujo de trabajo del code scanning. El texto de la entrada es el título que le diste a tu mensaje de confirmación.
-
Haz clic en la entrada para la ejecución del flujo de trabajo de code scanning.
-
Da clic en el nombre del job situado a la izquierda. Por ejemplo, Analizar (LENGUAJE) .
-
Revisa la salida de registro de las acciones en este flujo de trabajo conforme se ejecutan.
-
Una vez que todos los jobs se completen, puedes ver los detalles de cualquier alerta del code scanning que se hayan identificado. Para obtener más información, vea «Administración de alertas de examen de código para el repositorio».
Entender las verificaciones de la solicitud de cambios
Cada flujo de trabajo del code scanning 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 code scanning 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)". Puede hacer clic en Detalles en una entrada de análisis de code scanning 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 code scanning de los lenguajes compilados, esto puede suceder si la acciòn no puede compilar el còdigo.
Cuando se completan los trabajos del code scanning, GitHub averigüe si la solicitud de cambios agregó alguna alerta y agregue la entrada "Resultados del Code scanning / NOMBRE DE LA HERRAMIENTA" a la lista de verificaciones. Después de que code scanning se haya ejecutado al menos una vez, puede hacer clic en Detalles para ver los resultados del análisis.
Si ha usado una solicitud de cambios para agregar code scanning al repositorio, inicialmente verá el mensaje "Análisis no encontrado" al hacer clic en Detalles en la comprobación "Resultados del Code scanning / NOMBRE DE LA HERRAMIENTA".
La tabla lista una o más categorías. Cada categoría se relaciona con análisis específicos, para la misma herramienta y confirmación, que se realizan en un lenguaje o parte del código diferentes. En cada categoría, la tabla muestra los dos análisis que code scanning intentó comparar para determinar qué alertas se introdujeron o corrigieron en la solicitud de cambios.
Por ejemplo, en la captura de pantalla anterior, el code scanning encontró un análisis para la confirmación de fusión de la solicitud de cambios, pero no encontró ningún análisis para el encabezado de la rama principal.
Razones para obtener el mensaje "Analysis not found"
Despuès de que el code scanning 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 code scanning 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 code scanning a un repositorio, la rama base no se ha analizado, asì que no es posible calcular estos detalles. En este caso, cuando haces clic en la comprobación de los resultados de la solicitud de incorporación de cambios, verás el mensaje "Análisis no encontrado".
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 ellas se incluyen las siguientes:
-
La solicitud de cambios se levantó contra una rama diferente a la predeterminada y ésta no se ha analizado.
Para comprobar si se ha examinado una rama, vaya a la página de Code scanning, haga clic en el menú desplegable Rama y seleccione la rama correspondiente.
La solución a esta situación consiste en agregar el nombre de la rama base a la especificación de
on:push
yon:pull_request
en el flujo de trabajo de code scanning en esa rama y, después, realizar un cambio que actualice la solicitud de incorporación de cambios abierta que quiera examinar. -
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 code scanning.
-
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 code scanning en esta ùltima confirmaciòn, luego sube un cambio a la solicitud de extracciòn para volver a activar el code scanning.
Pasos siguientes
Después de configurar el code scanning y permitir que sus acciones se completen, puedes:
- Ver todas las alertas del code scanning que se han generado para este repositorio. Para obtener más información, vea «Administración de alertas de examen de código para el repositorio».
- Ver cualquier alerta que se genere para una solicitud de cambios que se emitió después de que configuraste el code scanning. Para obtener más información, vea «Clasificar las alertas del escaneo de código en las solicitudes de cambios».
- Configurar las notificaciones para las ejecuciones que se hayan completado. Para obtener más información, vea «Configuración de notificaciones».
- Visualizar las bitácoras que generó el análisis del code scanning. Para obtener más información, vea «Visualizar las bitácoras del escaneo de código».
- Investigar cualquier problema que ocurre con la configuración inicial del code scanning de CodeQL. Para obtener más información, vea «Solución de problemas de flujo de trabajo de CodeQL».
- Personaliza cómo el code scanning escanea el código en tu repositorio. Para obtener más información, vea «Personalización del examen de código».