Skip to main content

Paquetes de consultas de CodeQL

Puede elegir entre diferentes conjuntos de consultas integrados CodeQL que se usarán en la CodeQLcode scanning configuración.

¿Quién puede utilizar esta característica?

CodeQL está disponible para los siguientes tipos de repositorios:

Información sobre los CodeQL paquetes

CodeQL Los paquetes se usan para crear, compartir, depender y ejecutar CodeQL consultas y bibliotecas. Puede personalizar el CodeQL análisis descargando paquetes creados por otros usuarios y ejecutándolos en el código base.

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

  • Cómo compilar las consultas
  • Dependencias de otros CodeQL paquetes y bibliotecas
  • 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 CodeQL paquete puede contener:

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

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

Tipos de CodeQL paquetes

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

  • Los paquetes de consultas contienen un conjunto de consultas precompiladas que se pueden evaluar en una CodeQL base de datos. 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 code scanning el análisis para reconocer bibliotecas y marcos que no son compatibles de forma predeterminada. Los paquetes de modelos están actualmente en versión preliminar pública y están sujetos a cambios. Durante el 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 CodeQL de todos los idiomas admitidos se publican en Container registry. Si ha instalado CodeQL CLI de la manera estándar, utilizando el paquete CodeQL CLI, los paquetes de consultas principales ya se han descargado y están a su disposición. Ellos son:

  • 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 paquetes de consultas publicados y versiones diferentes CodeQL , consulte Referencia de paquetes de consulta de CodeQL.

También puede usar CodeQL CLI para crear sus propios CodeQL paquetes, agregar dependencias a los paquetes e instalar o actualizar dependencias.

Publicación y uso compartido CodeQL de paquetes

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

  • Publicación en GitHub Packages: haga que el paquete esté disponible públicamente para que otros usuarios detecten y usen.
  • Contribuir al repositorio CodeQL: envíe consultas que puedan beneficiar a toda la comunidad mediante la apertura de una solicitud de extracción en el repositorio oficial.

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

Para obtener información sobre cómo contribuir a CodeQL, vea Contribución a CodeQL.