Skip to main content

Paquetes de consultas de CodeQL

Puedes elegir entre diferentes conjuntos de consultas de CodeQL integradas para usarlas en la configuración de code scanning de CodeQL.

¿Quién puede utilizar esta característica?

CodeQL está disponible para los siguientes tipos de repositorios:

Acerca de los paquetes de CodeQL

Los paquetes de CodeQL se usan para crear, compartir y ejecutar consultas y bibliotecas de CodeQL, así como para establecer dependencias de ellas. Puedes personalizar el análisis de CodeQL si descargas paquetes creados por otros usuarios y ejecutándolos en el código base.

Cada paquete CodeQL requiere un archivo qlpack.yml en su directorio raíz que especifique:

  • Cómo compilar las consultas
  • Dependencias en otros paquetes y bibliotecas de CodeQL
  • Definiciones de la suite de consultas

Para obtener más información sobre las qlpack.yml propiedades, vea Personalización del análisis con paquetes de CodeQL.

Además, un paquete CodeQL puede contener:

  • Consultas personalizadas (.ql ficheros)
  • Archivos de biblioteca
  • Conjuntos de consultas
  • Metadatos

El paquete de CodeQL CLI incluye consultas que mantienen los expertos de GitHub, los investigadores de seguridad y los contribuyentes de la comunidad. Si quiere ejecutar consultas desarrolladas por otras organizaciones, los paquetes de consultas de CodeQL proporcionan una manera eficaz y fiable de descargar y ejecutar consultas, mientras que los paquetes de modelos (versión preliminar pública) se pueden usar para expandir el análisis de code scanning para reconocer bibliotecas y marcos que no se admiten de manera predeterminada.

Tipos de paquetes de CodeQL

Hay tres tipos de paquetes de CodeQL: paquetes de consultas, paquetes de biblioteca y paquetes de modelos.

  • Los paquetes de consultas contienen un conjunto de consultas precompiladas que se pueden evaluar en una base de datos CodeQL. Los paquetes de consultas están diseñados para ejecutarse. Cuando se publica un paquete de consultas, la agrupación incluye todas las dependencias transitivas y representaciones compiladas previamente de cada consulta, además de los orígenes de consulta. Esto garantiza una ejecución eficiente y coherente de las consultas en el paquete.

  • Los paquetes de biblioteca están diseñados para que los usen paquetes de consulta (u otros paquetes de biblioteca) y no contienen consultas. Las bibliotecas no se compilan por separado.

  • Los paquetes de modelos se pueden usar para expandir análisis code scanning para reconocer bibliotecas y marcos que no se admiten de forma predeterminada. Los paquetes de modelos están actualmente en versión preliminar pública y están sujetos a cambios. Durante la versión preliminar pública, los paquetes de modelos están disponibles para el análisis de C/C++, C#, Java/Kotlin, Python, Ruby y Rust. Para obtener más información sobre cómo crear sus propios paquetes de modelos, consulte Creación y uso de paquetes de CodeQL.

Dónde buscar paquetes de consultas

Los paquetes estándar de CodeQL para todos los lenguajes admitidos se publican en el Container registry. Si instalaste la CodeQL CLI de la manera estándar, con el paquete de la CodeQL CLI, los paquetes de consultas principales ya estarán descargados y disponibles. Son las siguientes:

  • codeql/cpp-queries
  • codeql/csharp-queries
  • codeql/go-queries
  • codeql/java-queries
  • codeql/javascript-queries
  • codeql/python-queries
  • codeql/ruby-queries
  • codeql/swift-queries

Para obtener más información sobre la compatibilidad entre los paquetes de consultas publicados y las diferentes versiones de CodeQL, consulte Publicación y uso de paquetes de CodeQL.

También puedes usar el comando la CodeQL CLI para crear tus propios paquetes de CodeQL, añadir dependencias a los paquetes e instalar o actualizar dependencias.

Publicación y compartir paquetes CodeQL

Puede compartir consultas personalizadas con la comunidad más amplia CodeQL mediante:

  • Publicar en GitHub Packages: haz que tu paquete esté disponible públicamente para que otros usuarios puedan descubrirlo y utilizarlo.
  • Contribuir al repositorio de CodeQL: envíe consultas que beneficiarían a la comunidad más amplia abriendo una solicitud de incorporación de cambios en el repositorio oficial.

Para obtener más información sobre la publicación y descarga de los paquetes de CodeQL, consulte Publicación y uso de paquetes de CodeQL.

Para obtener más información sobre cómo contribuir a CodeQL, consulte Contribución a CodeQL.