Skip to main content
Skip to content

Pacotes de consulta CodeQL

Você pode escolher entre diferentes pacotes integrados de consultas CodeQL para usar em sua configuração CodeQLcode scanning.

Quem pode usar esse recurso?

O CodeQL está disponível para os seguintes tipos de repositórios:

Sobre pacotes CodeQL

CodeQL os pacotes são usados para criar, compartilhar, depender e executar consultas CodeQL e bibliotecas. Você pode personalizar sua CodeQL análise baixando pacotes criados por outras pessoas e executando-os em sua base de código.

Cada CodeQL pacote requer um qlpack.yml arquivo em seu diretório raiz que especifica:

  • Como compilar as consultas
  • Dependências em outros CodeQL pacotes e bibliotecas
  • Definições da suíte de consultas

Para obter mais informações sobre qlpack.yml propriedades, consulte Como personalizar a análise com pacotes CodeQL.

Além disso, um CodeQL pacote pode conter:

  • Consultas personalizadas (.ql arquivos)
  • Arquivos de biblioteca
  • Pacotes de consulta
  • Metadados

O CodeQL CLI pacote inclui consultas mantidas por GitHub especialistas, pesquisadores de segurança e colaboradores da comunidade. Se você quiser executar consultas desenvolvidas por outras organizações, CodeQL os pacotes de consultas fornecem uma maneira eficiente e confiável de baixar e executar consultas, enquanto os pacotes de modelo (prévia pública) podem ser usados para expandir code scanning a análise para reconhecer bibliotecas e estruturas que não têm suporte por padrão.

Tipos de CodeQL pacotes

Há três tipos de pacotes: pacotes de CodeQL consulta, pacotes de biblioteca e pacotes de modelos.

  • Os pacotes de consulta contêm um conjunto de consultas pré-compiladas que podem ser avaliadas em um CodeQL banco de dados. Os pacotes de consultas foram projetados para serem executados. Quando um pacote de consultas é publicado, o pacote inclui todas as dependências transitivas e representações pré-compiladas de cada consulta, além das fontes de consulta. Isso garante a execução consistente e eficiente das consultas no pacote.

  • Os pacotes de biblioteca são projetados para serem usados por pacotes de consultas (ou outros pacotes de biblioteca) e não contêm consultas. As bibliotecas não são compiladas separadamente.

  • Os pacotes de modelos podem ser usados para expandir code scanning a análise para reconhecer bibliotecas e estruturas que não têm suporte por padrão. Atualmente, os pacotes de modelos estão em prévia pública e sujeitos a alterações. Durante prévia pública, os pacotes de modelos estão disponíveis para análise de C/C++, C#, Java/Kotlin, Python, Ruby e Rust. Para obter mais informações sobre como criar seus próprios pacotes de modelo, confira Como criar e trabalhar com pacotes do CodeQL.

Onde encontrar pacotes de consulta

Os pacotes padrão CodeQL para todos os idiomas com suporte são publicados no Container registry. Se você instalou o CodeQL CLI da maneira padrão, usando o pacote CodeQL CLI, os pacotes principais de consulta já foram baixados e estão disponíveis para você. Eles são:

  • 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 obter mais informações sobre compatibilidade entre pacotes de consultas publicados e versões diferentes CodeQL , consulte Referência de pacotes de consulta CodeQL.

Você também pode usar o CodeQL CLI para criar seus próprios CodeQL pacotes, adicionar dependências a pacotes e instalar ou atualizar dependências.

Publicar e compartilhar pacotes CodeQL

Você pode compartilhar consultas personalizadas com a comunidade mais CodeQL ampla:

  • Publicando em GitHub Packages: disponibilize seu pacote publicamente para outros usuários descobrirem e usarem.
  • Contribuindo para o CodeQL repositório: envie consultas que beneficiariam a comunidade em geral abrindo uma solicitação de pull para o repositório oficial.

Para obter mais informações sobre publicação e download de CodeQL pacotes, consulte Publicar e usar pacotes do CodeQL.

Para obter informações sobre como contribuir CodeQL, consulte Contribuindo para CodeQL.