{"meta":{"title":"Carregando resultados da análise do CodeQL para GitHub","intro":"Você pode usar o CodeQL CLI para enviar os resultados da CodeQL análise para GitHub.","product":"Qualidade de segurança e código","breadcrumbs":[{"href":"/pt/code-security","title":"Qualidade de segurança e código"},{"href":"/pt/code-security/tutorials","title":"Tutorials"},{"href":"/pt/code-security/tutorials/customize-code-scanning","title":"Personalizar a verificação de código"},{"href":"/pt/code-security/tutorials/customize-code-scanning/uploading-codeql-analysis-results-to-github","title":"Carregando resultados para GitHub"}],"documentType":"article"},"body":"# Carregando resultados da análise do CodeQL para GitHub\n\nVocê pode usar o CodeQL CLI para enviar os resultados da CodeQL análise para GitHub.\n\nDepois de analisar um banco de dados CodeQL usando o CodeQL CLI, você terá um arquivo SARIF que contém os resultados. Em seguida, você pode usar o CodeQL CLI para carregar os resultados para GitHub.\n\nSe você usou um método diferente do CodeQL CLI para gerar resultados, poderá usar outros métodos de upload. Para saber mais, confira [Fazer o upload de arquivo SARIF para o GitHub](/pt/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github).\n\n## Gerando um token para autenticação com GitHub\n\nAntes de fazer upload de seus resultados para GitHub, primeiro você precisará gerar um personal access token. Confira [Gerenciar seus tokens de acesso pessoal](/pt/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\n\n***\n\n```\n          Personal access token (classic)\n          ** requer \"Code scanning alertas\" **Acesso de leitura e gravação** para os repositórios necessários.\n```\n\n***\n\n```\n          Fine-grained personal access token\n          ** requer acesso ao repositório **security_events**.\n```\n\nSe você tiver instalado o CodeQL CLI em um sistema de CI de terceiros, também poderá usar um GitHub App para fazer o upload dos resultados para GitHub. Confira [Usando a varredura de código com seu sistema de CI existente](/pt/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#generating-a-token-for-authentication-with-github).\n\n## Carregando resultados para GitHub\n\n1. Verifique se as propriedades SARIF têm o tamanho com suporte para upload e se o arquivo é compatível com a verificação de código. Para saber mais, confira [Suporte SARIF para a varredura de código](/pt/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning#file-compatibility).\n\n2. Determine a melhor maneira de passar o GitHub App ou personal access token você criou na seção anterior para o CodeQL CLI. Recomendamos que você examine as diretrizes do sistema da CI sobre o uso seguro de um repositório secreto. O CodeQL CLI suporta:\n\n   * Interface com um repositório de segredos usando a opção `--github-auth-stdin` (recomendado).\n   * Salvar o segredo na variável de ambiente `GITHUB_TOKEN` e executar a CLI sem incluir a opção `--github-auth-stdin`.\n   * Para fins de teste, você pode passar a opção de linha de comando `--github-auth-stdin` e fornecer um token temporário por meio de entrada padrão.\n\n3. Quando você tiver decidido o método mais seguro e confiável para a configuração, execute `codeql github upload-results` em cada arquivo de resultados SARIF e inclua `--github-auth-stdin`, a menos que o token esteja disponível na variável de ambiente `GITHUB_TOKEN`.\n\n   ```shell\n   # GitHub App or personal access token available from a secret store\n   <call-to-retrieve-secret> | codeql github upload-results \\\n       --repository=<repository-name> \\\n       --ref=<ref> --commit=<commit> \\\n       --sarif=<file> --github-auth-stdin\n\n   # GitHub App or personal access token available in GITHUB_TOKEN\n   codeql github upload-results \\\n       --repository=<repository-name> \\\n       --ref=<ref> --commit=<commit> \\\n       --sarif=<file> \n   ```\n\n| Opção                                                                      |                                                                                                                                                                                                           Obrigatório                                                                                                                                                                                                          | Usage                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n| -------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| <code><span style=\"white-space: nowrap;\">--repository</span></code>        |                                                     <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                    | Especifique o *PROPRIETÁRIO/NOME* do repositório no qual os dados serão carregados. O proprietário deve ser uma organização dentro de uma empresa ou em um GitHub Team plano, com GitHub Code Security habilitado para o repositório, a menos que o repositório seja público. Para saber mais, confira [Gerenciando as configurações de segurança e análise do repositório](/pt/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository). |\n| <code><span style=\"white-space: nowrap;\">--ref</span></code>               |                                                     <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                    | Especifique o nome da `ref` do qual você fez check-out e analisou para que os resultados possam corresponder ao código correto. Para um uso de branch: `refs/heads/BRANCH-NAME`, para a confirmação principal de um uso `refs/pull/NUMBER/head`de solicitação de pull ou para a GitHubconfirmação de mesclagem gerada de um uso `refs/pull/NUMBER/merge`de solicitação de pull.                                                                                                                                                                  |\n| <code><span style=\"white-space: nowrap;\">--commit</span></code>            |                                                     <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                    | Especifique o SHA completo do commit que você analisou.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |\n| <code><span style=\"white-space: nowrap;\">--sarif</span></code>             |                                                     <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                    | Especifique o arquivo SARIF a ser carregado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |\n|                                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |\n| <code><span style=\"white-space: nowrap;\">--github-auth-stdin</span></code> | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"Optional\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Passe a CLI, a GitHub App ou a personal access token criada para autenticação com a API REST de GitHub a partir do seu armazenamento de segredos, por meio de entrada padrão. Isso não será necessário se o comando tiver acesso a uma variável de ambiente `GITHUB_TOKEN` definida com esse token.                                                                                                                                                                                                                                              |\n\nPara saber mais, confira [github upload-results (carregar resultados no GitHub)](/pt/code-security/codeql-cli/codeql-cli-manual/github-upload-results).\n\n> \\[!NOTE]\n> Se você analisou mais de um CodeQL banco de dados para uma única confirmação, deverá ter especificado uma categoria SARIF para cada conjunto de resultados gerados por esse comando. Quando você carrega os resultados, GitHubcode scanning usa essa categoria para armazenar os resultados de cada idioma separadamente. Se você se esquecer de fazer isso, cada upload substituirá os resultados anteriores. Para saber mais, confira [Como analisar o código com as consultas CodeQL](/pt/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries#running-codeql-database-analyze).\n\n### Exemplo básico de carregamento de resultados para GitHub\n\nEste exemplo carrega os resultados do arquivo SARIF `temp/example-repo-js.sarif` no repositório `my-org/example-repo`. Ele informa para a code scanning API que os resultados são para o commit `deb275d2d5fe9a522a0b7bd8b6b6a1c939552718` no ramo `main`. O exemplo pressupõe que o GitHub App ou personal access token criado para autenticação com a GitHub API REST use a variável de ambiente `GITHUB_TOKEN`.\n\n```shell\ncodeql github upload-results \\\n    --repository=my-org/example-repo \\\n    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \\\n    --sarif=/temp/example-repo-js.sarif \n```\n\nNão há saída deste comando a menos que o upload não tenha sido bem-sucedido. A instrução de comando retorna quando o upload foi concluído e o processamento de dados é iniciado. Em bases de código menores, você deve ser capaz de explorar os code scanning alertas em GitHub logo em seguida. Você pode ver alertas diretamente no pull request ou na aba **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality** para branches, dependendo do código que você baixou.\n\n## Carregando informações de diagnóstico para GitHub se a análise falhar\n\nAo CodeQL CLI concluir a análise de um banco de dados com êxito, ele coleta informações de diagnóstico, como cobertura de arquivo, avisos e erros, e inclui-o no arquivo SARIF com os resultados. Quando você carrega o arquivo SARIF para GitHub, as informações de diagnóstico são exibidas em code scanningpágina de status da ferramenta, permitindo visualizar facilmente o desempenho de CodeQL e depurar quaisquer problemas. Para saber mais, confira [Usar a página de status da ferramenta para verificação de código](/pt/code-security/code-scanning/managing-your-code-scanning-configuration/about-the-tool-status-page).\n\nNo entanto, se `codeql database analyze` falhar por algum motivo, não haverá nenhum arquivo SARIF para carregar em GitHub e nenhuma informação de diagnóstico para exibir no code scanningpágina de status da ferramenta relacionado ao repositório. Isso dificulta que os usuários solucionem problemas de análise, a menos que tenham acesso aos arquivos de log em seu sistema de CI.\n\nRecomendamos que você configure seu fluxo de trabalho de CI para exportar e carregar informações de diagnóstico para GitHub quando uma análise falhar. Você pode fazer isso usando os comandos simples a seguir para exportar informações de diagnóstico e carregá-los para GitHub.\n\n### Exportar informações de diagnóstico se a análise falhar\n\nVocê pode criar um arquivo SARIF para a análise com falha usando [Diagnóstico de exportação de banco de dados](/pt/code-security/codeql-cli/codeql-cli-manual/database-export-diagnostics), por exemplo:\n\n```shell\n$ codeql database export-diagnostics codeql-dbs/example-repo \\\n    --sarif-category=javascript-typescript --format=sarif-latest \\\n    --output=/temp/example-repo-js.sarif\n```\n\nEsse arquivo SARIF conterá informações de diagnóstico para a análise com falha, incluindo quaisquer informações de cobertura de arquivo, avisos e erros gerados durante a análise.\n\n### Carregar informações de diagnóstico se a análise falhar\n\nVocê pode disponibilizar essas informações de diagnóstico no página de status da ferramenta carregando o arquivo SARIF em GitHub usando [github upload-results (carregar resultados no GitHub)](/pt/code-security/codeql-cli/codeql-cli-manual/github-upload-results), por exemplo:\n\n```shell\ncodeql github upload-results \\\n    --repository=my-org/example-repo \\\n    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \\\n    --sarif=/temp/example-repo-js.sarif \n```\n\nIsso é o mesmo que o processo para carregar arquivos SARIF de análises bem-sucedidas."}