{"meta":{"title":"Sobre a CLI do CodeQL","intro":"Você pode usar o CodeQL CLI para executar processos CodeQL localmente em projetos de software ou para gerar resultados de code scanning para upload no GitHub.","product":"Qualidade de segurança e código","breadcrumbs":[{"href":"/pt/enterprise-server@3.17/code-security","title":"Qualidade de segurança e código"},{"href":"/pt/enterprise-server@3.17/code-security/concepts","title":"Concepts"},{"href":"/pt/enterprise-server@3.17/code-security/concepts/code-scanning","title":"Varredura de código"},{"href":"/pt/enterprise-server@3.17/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/pt/enterprise-server@3.17/code-security/concepts/code-scanning/codeql/about-the-codeql-cli","title":"CLI do CodeQL"}],"documentType":"article"},"body":"# Sobre a CLI do CodeQL\n\nVocê pode usar o CodeQL CLI para executar processos CodeQL localmente em projetos de software ou para gerar resultados de code scanning para upload no GitHub.\n\nDesenvolvedores de software e pesquisadores de segurança podem proteger o código usando a análise do CodeQL. Para obter mais informações sobre o CodeQL, confira [Sobre a varredura de código com CodeQL](/pt/enterprise-server@3.17/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-codeql).\n\nA CodeQL CLI é uma ferramenta de linha de comando autônoma que você pode usar para analisar o código. Seu principal propósito é gerar uma representação do banco de dados de uma base de código, um banco de dados de CodeQL. Assim que o banco de dados estiver pronto, será possível consultá-lo interativamente ou executar um conjunto de consultas a fim de gerar um conjunto de resultados no formato SARIF e enviá-los ao GitHub.\n\nVocê pode usar a CodeQL CLI para:\n\n* Executar análises de CodeQL usando consultas fornecidas por engenheiros de GitHub e pela comunidade de código aberto\n* Gere alertas de verificação de código que você pode carregar para exibir em GitHub\n* Criar bancos de dados do CodeQL para usar na extensão CodeQL para o Visual Studio Code.\n* Desenvolver e testar consultas personalizadas do CodeQL a serem usadas em suas análises\n\nA CodeQL CLI pode analisar:\n\n* Idiomas dinâmicos, por exemplo, JavaScript e Python.\n* Linguagens compiladas, por exemplo, C/C++, C#, Go, Java, Kotlin, Rust (versão prévia pública), e Swift\n* Bases de código em uma mistura de linguagens.\n\n## Sobre o uso do CodeQL CLI for code scanning\n\nVocê pode usar a CodeQL CLI para executar a code scanning no código que está processando em um sistema de CI (integração contínua) de terceiros. A Code scanning é um recurso que você usa para analisar o código em um repositório GitHub para encontrar vulnerabilidades de segurança e erros de codificação. Os problemas que forem identificados pela análise serão mostrados em seu repositório. Para obter uma visão geral do uso do varredura de código com sistemas de CI externos, consulte [Usando a varredura de código com seu sistema de CI existente](/pt/enterprise-server@3.17/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system). Para especificações recomendadas (RAM, núcleos de CPU e disco) para executar análises do CodeQL, confira [Recursos de hardware recomendados para executar o CodeQL](/pt/enterprise-server@3.17/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/recommended-hardware-resources-for-running-codeql).\n\nComo alternativa, você pode usar pipelines do GitHub Actions ou do Azure DevOps para verificar o código usando a CodeQL CLI. Para obter mais informações, confira [Como definir a configuração padrão da verificação de código](/pt/enterprise-server@3.17/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning) ou [Configurar GitHub Advanced Security for Azure DevOps](https://learn.microsoft.com/en-us/azure/devops/repos/security/configure-github-advanced-security-features) no Microsoft Learn.\n\nPara obter uma visão geral de todas as opções para usar a análise do CodeQL para a verificação de código, confira [Sobre a varredura de código com CodeQL](/pt/enterprise-server@3.17/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql).\n\n> \\[!NOTE]\n>\n> * A CodeQL CLI está disponível para clientes com uma licença do GitHub Code Security.\n> * Atualmente, o CodeQL CLI não é compatível com distribuições Linux não glibc, como o Alpine Linux (baseado em musl).\n\n## Sobre a geração de resultados de varredura de código com a CodeQL CLI\n\nSe você optar por executar a CodeQL CLI diretamente, primeiro, precisará instalar a CodeQL CLI localmente. Se estiver planejando usar a CodeQL CLI com um sistema de CI externo, será necessário disponibilizar a CodeQL CLI para os servidores do seu sistema de CI.\n\nDepois de configurar o CodeQL CLI, você pode usar três comandos diferentes para gerar resultados e enviá-los para o GitHub:\n\n1. ```\n          `database create` para criar um banco de dados do CodeQL a fim de representar a estrutura hierárquica de cada linguagem de programação compatível no repositório. Para saber mais, confira [AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis).\n   ```\n2. ```\n          `database analyze` para executar consultas a fim de analisar cada banco de dados do CodeQL e resumir os resultados em um arquivo SARIF. Para saber mais, confira [AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries).\n   ```\n3. ```\n          `github upload-results` para carregar os arquivos SARIF resultantes no GitHub, no qual será feita a correspondência dos resultados com uma ramificação ou uma pull request e no qual eles serão exibidos como alertas da code scanning. Para saber mais, confira [AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/uploading-codeql-analysis-results-to-github).\n   ```\n\n> \\[!NOTE]\n> Há suporte para o upload de dados SARIF a serem exibidos como resultados da code scanning no GitHub nos repositórios pertencentes à organização com o GitHub Code Security habilitado. Para saber mais, confira [Gerenciando as configurações de segurança e análise do repositório](/pt/enterprise-server@3.17/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository).\n\n### Exemplo de configuração de CI para análise de CodeQL\n\nEste é um exemplo da série completa de comandos para o CodeQL CLI que você pode usar para analisar uma base de código com suporte a duas linguagens e, em seguida, enviar os resultados para o GitHub.\n\n```shell\n# Create CodeQL databases for Java and Python in the 'codeql-dbs' directory\n# Call the normal build script for the codebase: 'myBuildScript'\n\ncodeql database create codeql-dbs --source-root=src \\\n    --db-cluster --language=java,python --command=./myBuildScript\n\n# Analyze the CodeQL database for Java, 'codeql-dbs/java'\n# Tag the data as 'java' results and store in: 'java-results.sarif'\n\ncodeql database analyze codeql-dbs/java java-code-scanning.qls \\\n    --format=sarif-latest --sarif-category=java --output=java-results.sarif\n\n# Analyze the CodeQL database for Python, 'codeql-dbs/python'\n# Tag the data as 'python' results and store in: 'python-results.sarif'\n\ncodeql database analyze codeql-dbs/python python-code-scanning.qls \\\n    --format=sarif-latest --sarif-category=python --output=python-results.sarif\n\n# Upload the SARIF file with the Java results: 'java-results.sarif'\n# The GitHub App or personal access token created for authentication\n# with GitHub's REST API is available in the `GITHUB_TOKEN` environment variable.\n\ncodeql github upload-results \\\n    --repository=my-org/example-repo \\\n    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \\\n    --sarif=java-results.sarif\n\n# Upload the SARIF file with the Python results: 'python-results.sarif'\n\ncodeql github upload-results \\\n    --repository=my-org/example-repo \\\n    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \\\n    --sarif=python-results.sarif\n```\n\n### Extração de banco de dados\n\nO CodeQL CLI usa programas especiais, chamados de extratores, para extrair informações do código-fonte de um sistema de software em um banco de dados que pode ser consultado. Você pode personalizar o comportamento dos extratores definindo as opções de configuração do extrator por meio da CodeQL CLI. Confira [Opções do extrator](/pt/enterprise-server@3.17/code-security/reference/code-scanning/codeql/codeql-cli/extractor-options).\n\n## Sobre a licença do GitHub CodeQL\n\n**Aviso de licença:** se você não tiver uma licença da GitHub Code Security então, ao instalar este produto, estará concordando com os [GitHub CodeQL Termos e Condições](https://github.com/github/codeql-cli-binaries/blob/main/LICENSE.md).\n\n## Sobre os pacotes de banco de dados CodeQL CLI\n\nO comando de pacote de banco de dados do CodeQL CLI pode ser usado para criar um arquivo relocalizável de um banco de dados CodeQL.\n\nUma cópia de um pacote de banco de dados pode ser usada para compartilhar informações de solução de problemas com os membros da equipe ou com o Suporte do GitHub. Confira [Criar pacotes de banco de dados da CLI do CodeQL](/pt/enterprise-server@3.17/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/creating-database-bundle-for-troubleshooting).\n\n## Como começar\n\nPara obter a maneira mais simples de começar, consulte [Como configurar a CLI do CodeQL](/pt/enterprise-server@3.17/code-security/codeql-cli/getting-started-with-the-codeql-cli/setting-up-the-codeql-cli).\n\nAs opções de instalação mais avançadas estarão disponíveis se você precisar delas. Por exemplo, se você:\n\n* Deseja contribuir para consultas de código aberto compartilhadas do CodeQL e prefere trabalhar diretamente com o código-fonte do CodeQL. Confira [Verificando o código-fonte da CLI do CodeQL](/pt/enterprise-server@3.17/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/check-out-source-code).\n* É necessário instalar várias versões do CodeQL CLI lado a lado. Por exemplo, se uma base de código exigir uma versão específica, enquanto outra usar a mais recente. Você pode baixar cada versão e desempacotar os arquivos de cada versão da CLI no mesmo diretório pai.\n* Estamos pesquisando ou desenvolvendo consultas e desejamos fazer o download de bancos de dados do GitHub.com. Confira [Baixando bancos de dados CodeQL de GitHub](/pt/enterprise-server@3.17/code-security/how-tos/scan-code-for-vulnerabilities/scan-from-the-command-line/download-databases)."}