🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónBases de datos de código y qué contienen
5 tareas · 35 min · Principiante
Un análisis semántico no lee el código como texto: primero lo convierte en una base de datos y después le hace preguntas. Si la base está incompleta, las preguntas se contestan sobre algo que no es tu repositorio. En esta sala abres la base de datos de código de api-pedidos, la API de Mangostino Agro, y miras qué guarda, de qué momento es y qué quedó fuera sin que nadie se enterara.
Objetivo de la sala
Un análisis semántico no lee el código como texto: primero lo convierte en una base de datos y después le hace preguntas. Si la base está incompleta, las preguntas se contestan sobre algo que no es tu repositorio. En esta sala abres la base de datos de código de api-pedidos, la API de Mangostino Agro, y miras qué guarda, de qué momento es y qué quedó fuera sin que nadie se enterara.Un análisis semántico, como el de CodeQL, trabaja en dos tiempos. En el primero, una extracción recorre el código y construye una base de datos de código: tablas relacionales con la estructura del programa (su árbol sintáctico, el flujo de control y el flujo de datos), una copia del código fuente tal como estaba y unos metadatos. En el segundo, una consulta pregunta a esa base y devuelve alertas.
La documentación oficial lo resume así: una base contiene datos extraídos de un código, de un solo lenguaje y en un momento concreto. Dos consecuencias prácticas. Un repositorio con dos lenguajes necesita dos bases. Y la base es una foto: si el código cambia después, la base no se entera hasta que se vuelve a construir.
Responde para continuar
El repositorio de una empresa tiene código en Python y en JavaScript, y se quiere analizarlo entero con una consulta por lenguaje. ¿Qué hace falta construir?
Los metadatos de la base dicen de qué lenguaje es, cuántas líneas de código tenía y, sobre todo, de qué revisión del repositorio salió. Ese dato decide si una alerta habla del código que hoy está en la rama o de uno que ya cambió. Cuando alguien dice «el análisis no ve el fallo que arreglamos ayer», lo primero que se comprueba es de qué revisión es la base.
Abre bd/codeql-database.yml en la base de Mangostino Agro.
Responde para continuar
Escribe la revisión del código de la que salió la base de datos.
La extracción no siempre procesa todo. Un archivo con sintaxis que el extractor no entiende (por ejemplo, de una versión vieja del lenguaje) se omite, y un lenguaje sin base no se analiza en absoluto. Lo peligroso es que un archivo omitido no produce alertas: en el informe parece limpio, cuando en realidad nadie lo miró. El registro de la extracción es donde se descubre.
Lee el registro de extracción de la base y busca la línea que dice ERROR.
Responde para continuar
Escribe el nombre del archivo que la extracción omitió.
Saber cuánto del repositorio queda sin cubrir es parte de leer un análisis. Se suman los archivos que la extracción omitió dentro de un lenguaje con base y los de los lenguajes que no tienen base.
Con el inventario del repositorio y el registro de extracción, calcula el hueco de cobertura. No cuentes las plantillas de marcado: no son código de programa.
Responde para continuar
¿Cuántos archivos de código de api-pedidos no están representados en ninguna base? Escribe solo el número.
Una alerta ausente puede significar dos cosas muy distintas: que el código se miró y está bien, o que no se miró. Quien lee el informe sin mirar la extracción las confunde. Por eso un informe responsable dice cuánto código cubrió, y por eso se revisa la cobertura antes de celebrar un resultado en verde.
Responde para continuar
Un archivo omitido por la extracción no aparece con alertas en el informe. ¿Cómo se debe leer eso?
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.