Sobre os limites de code scanning nos resultados do SARIF
# SARIF results exceed soft limits
Locations for an alert exceeded limits
Analysis SARIF file exceeded alert limits
Rule tags in SARIF file exceed limits
Alert in SARIF upload exceeded thread flow location limits
Repository is at risk of exceeding the alert limit.
# SARIF results exceed hard limit
Alert(s) in SARIF file exceeded thread flow location limits
Analysis SARIF file rejected due to extension limits
Analysis SARIF file rejected due to location limit
Analysis SARIF file rejected due to rule tag limits
Analysis SARIF file rejected due to result limits
Analysis SARIF file rejected due to rule limits
Analysis SARIF file rejected due to run limits
All analysis uploads blocked due to alert limit
Code scanning define dois tipos de limites em campos em arquivos de resultados do SARIF.
- Limites flexíveis que determinam quantos dados são armazenados e exibidos aos usuários.
- Limites rígidos que determinam a quantidade máxima de dados aceitos para processamento.
Você pode ver esses erros para arquivos SARIF gerados por CodeQL ou por ferramentas de análise de terceiros.
Dados SARIF | Valores máximos | Limites de truncamento de dados |
---|---|---|
Execuções por arquivo | 20 | Nenhum |
Resultados por execução | 25,000 | Somente os 5 mil resultados principais serão incluídos, priorizados por severidade. |
Regras por execução | 25,000 | Nenhum |
Extensões de ferramenta por execução | 100 | Nenhum |
Locais de fluxo de threads por resultado | 10.000 | Somente os mil principais locais de fluxo de threads serão incluídos, usando a priorização. |
Local por resultado | 1,000 | Somente 100 locais serão incluídos. |
Marcas por regra | 20 | Somente dez marcas serão incluídas. |
Limite de alerta | 1.000.000 | Nenhum |
Para obter informações sobre como validar o arquivo SARIF, confira "Suporte SARIF para a varredura de código".
Corrigir erros de limite flexível
Quando os limites flexíveis são excedidos, o code scanning mostra as informações de prioridade mais alta. Muitas vezes, você não precisa fazer nenhuma alteração na configuração do code scanning. À medida que sua equipe corrige alertas, o número de resultados relatados em cada execução será reduzido até que eles estejam dentro dos limites flexíveis e todos os resultados sejam exibidos. Como alternativa, você pode usar as abordagens descritas para erros de limite rígido.
Correção de "Arquivo SARIF de análise rejeitado devido a limites de resultados"
Há muitas considerações e possíveis soluções para reduzir o número de resultados incluídos em um arquivo de resultados do SARIF. Para obter diretrizes, confira "O arquivo de resultados SARIF é muito grande".
Correção de "Alertas no arquivo SARIF excederam os limites de localização do fluxo de threads"
Você pode configurar a análise para limitar o número de caminhos de fluxo de dados incluídos nos resultados. Por padrão, quatro caminhos de fluxo de dados são incluídos para cada resultado.
-
Configuração avançada do CodeQL para code scanning: atualize a etapa
analyze
para limitar o número de caminhos a um máximo de um ou zero.- name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 env: CODEQL_ACTION_EXTRA_OPTIONS: '{"database":{"interpret-results":["--max-paths", 1]}}'
-
CodeQL CLI
database analyze
: atualize o comando de análise de banco de dados para incluir o sinalizador--max-paths=1
. Para obter mais informações, confira "database analyze".
Note
A configuração max-paths
afeta os resultados de todas as consultas de fluxo de dados.
Correção de "Arquivo SARIF de análise rejeitado devido a limites de execução"
A abordagem mais simples é gerar um novo arquivo SARIF para cada execução e carregar cada arquivo separadamente. Você adiciona uma "categoria" a cada resultado e isso permite que o code scanning armazene e exiba os resultados adequadamente. Para obter mais informações, confira "Suporte SARIF para a varredura de código".
Correção de "Arquivo SARIF de análise rejeitado devido a limites de regra"
Há duas abordagens possíveis aqui.
- Reduza o número de regras usadas para analisar o código. Para obter mais informações, confira "Definir o conjunto de consultas a ser executado" e "Excluir uma consulta da análise" em "Arquivo de resultados do SARIF muito grande".
- Execute a análise duas vezes, cada vez com um conjunto diferente de regras, e carregue os dois arquivos de resultados no code scanning. Para obter mais informações, confira "Suporte SARIF para a varredura de código".
Correção de "Arquivo SARIF de análise rejeitado devido a limites de extensão"
A abordagem mais simples é criar um arquivo SARIF separado sempre que você executar a ferramenta e carregar cada arquivo separadamente. Talvez você também precise entrar em contato com o mantenedor da ferramenta. Para obter mais informações, confira "Suporte SARIF para a varredura de código".
A análise do CodeQL não deve gerar esse erro. Se você vir esse erro ao usar a ação CodeQL ou CodeQL CLI, entre em contato com Suporte do GitHub para nos informar. Para obter mais informações, confira "Entrando em contato com o suporte do GitHub".
Correção de "Arquivo SARIF de análise rejeitado devido a limites de localização"
A melhor maneira de resolver esse problema geralmente é identificar a consulta que relata muitos locais e excluí-la da análise. Para obter informações sobre como fazer isso, confira "O arquivo de resultados SARIF é muito grande".
Correção de "Arquivo SARIF de análise rejeitado devido a limites de tag de regra"
Você precisa atualizar o arquivo SARIF ou o gerador para que a matriz de tags relatadas para cada objetoreportingDescriptor
seja menor que 10. Para obter mais informações, confira properties.tags[]
em "Suporte SARIF para a varredura de código".
Corrigir "O repositório corre o risco de exceder o limite de alerta" e "Todos os uploads de análise bloqueados devido ao limite de alerta"
Esse limite é acionado por um repositório que produz mais alertas exclusivos do que deveria existir como parte de uma configuração code scanning que funciona bem. É possível que isso se deva à saída de uma ferramenta de outros fornecedores que está sendo usada e pode não ser um erro de configuração do usuário. Tanto o erro de configuração do usuário quanto o erro do fornecedor da ferramenta são possíveis causas.
Há algumas etapas para corrigir esse problema.
- Examine os arquivos SARIF que você está produzindo para identificar a causa dos alertas code scanning classificados como distintos entre as execuções de uma ferramenta. Isso normalmente ocorre por um dos seguintes motivos:
- A propriedade SARIF
artifactLocation.uri
(caminho do arquivo na interface do usuário de alerta code scanning) não é determinística devido à inclusão de diretórios temporários ou nomes de arquivo gerados. - A ferramenta usada produz nomes ou valores
artifactLocation object uri property
de regras SARIF instáveis, que geralmente são o resultado do uso de hashes (de commits git ou SHAs de imagem do docker, por exemplo) ou outras fontes de dados que mudam entre execuções ou ambientes.
- A propriedade SARIF
- Após identificar a origem do problema, você deverá atualizar sua configuração de acordo e entrar em contato com o fornecedor da ferramenta se ela for a origem dos resultados instáveis do SARIF.
- Pare de carregar os resultados da varredura de código para qualquer ferramenta de terceiros que produza saída não determinística até que eles tenham sido corrigidos pelo fornecedor da ferramenta.
Etapas adicionais para "Todos os uploads de análise bloqueados devido ao limite de alerta"
Além de corrigir a configuração da varredura de código e remover ou corrigir a saída de ferramentas de terceiros, você precisará entrar em contato com seu administrador do site para ajudar você a excluir os alertas de todas as configurações ofensivas.
Não há um método de autoatendimento para excluir alertas no momento. Portanto, é necessário entrar em contato com o suporte ao cliente para que a digitalização de código possa ser reativada.