Observação
Este artigo descreve os recursos disponíveis com o pacote CodeQL CLI 2.21.4 incluído na versão inicial do GitHub Enterprise Server 3.18.
Se o administrador do site atualizou a versão do CodeQL CLI para uma mais recente, confira a versão GitHub Enterprise Cloud deste artigo para obter informações sobre os recursos mais recentes.
Sobre CodeQL pacotes
CodeQL os pacotes são usados para criar, compartilhar, depender e executar CodeQL consultas 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 (
.qlarquivos) - 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 C/C++, C#, Java/Kotlin, Python, e Ruby. 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-queriescodeql/csharp-queriescodeql/go-queriescodeql/java-queriescodeql/javascript-queriescodeql/python-queriescodeql/ruby-queriescodeql/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.
Publicando e compartilhando CodeQL pacotes
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.