Mas uma checagem que aparece no pull request para a equipe todo dia útil — no bom sentido. Este roda os mesmos detectores que o scanner do site roda, a cada commit: dentro do seu próprio runner, para o código não publicado ficar na sua máquina.
Essa é a objeção que encerra a maior parte das conversas sobre um scanner de segurança, então ela merece ser respondida logo no começo e de forma definitiva.
O motor com 201 detectores é baixado para o seu runner e roda ali. O que volta para a SaferICO é um número por severidade e identificadores de regra com nome de arquivo e número de linha — nunca o código em si, e nunca os textos de prova, porque eles citam o seu código-fonte.
A suíte de testes procura, no corpo da requisição que sai, trechos do código que ela acabou de escanear. A afirmação não é uma frase, é uma propriedade verificada a cada execução.
O motor precisa de muito mais que isso numa base de código de verdade. No runner do GitHub não há limite de núcleo nem de tempo, então o escaneamento que roda no seu commit é o completo, não uma versão encurtada.
O runner busca o motor atual a cada execução. Um workflow fixado há um ano recebe os detectores de hoje.
Um único arquivo dentro de .github/workflows/. O runner não baixa árvore de dependências nenhuma — uma ferramenta de segurança que arrasta as próprias dependências para dentro do seu pipeline é um argumento contra si mesma.
Um último passo opcional envia SARIF, para os achados aparecerem na aba Security do GitHub e diretamente sobre o diff — que é onde um desenvolvedor de fato vai lê-los.
As ferramentas em si (o scanner, os painéis, o espaço de trabalho da SAFI) funcionam por enquanto com a interface em inglês. Estas páginas explicam tudo em português antes de você entrar nelas.
Um arquivo, um segredo e um limiar que define quando o build quebra.
Os detectores já são públicos em /sfi-engine.js, e não afirmamos o contrário. O que se vende aqui é a licença, o histórico, a política que decide se o build quebra ou não, e a visão para toda a organização.
Você coloca um único arquivo em .github/workflows/: o código é baixado, o sfi-ci.mjs é buscado e executado e, opcionalmente, o SARIF é enviado. O texto completo fica na própria página, pronto para copiar.
O próprio runner é um único arquivo que você pode ler antes de executar: https://saferico.com/sfi-ci.mjs
Você cria a chave na aba de chaves de API da sua conta e a adiciona aos secrets do seu repositório como SAFERICO_API_KEY.
Até 5 chaves por conta, cada uma revogável e com o próprio contador de chamadas.
As severidades que o motor reporta: crítica, alta, média, baixa, informativa. O padrão é «quebrar em alta e acima».
Baixe o limiar enquanto limpa um passivo e suba depois de limpo. Um limiar que ninguém consegue passar é desligado numa semana, e uma checagem desligada não protege nada.
Cole o endereço do contrato e veja as permissões do proprietário, a liquidez e o resultado da simulação de venda antes de se expor. A pequena taxa por escaneamento aparece antes da assinatura — e em qualquer assinatura ela já vem incluída, sem limite.