Voltar às atualizações
New releaseJul 21, 2026

secretlint v13.0.3

Ferramenta de linting plugável para evitar o commit de credenciais.

Compartilhar

Secretlint Actions Status

Secretlint é uma ferramenta de linting plugável para evitar o commit de credenciais.

Secretlint é uma ferramenta de linting plugável para evitar o commit de credenciais.

Funcionalidades

  • Scanner: Encontra credenciais em um projeto e as reporta
  • Amigável para Projetos: Fácil de configurar no seu projeto e integrar com serviços de CI
  • Pre-Commit Hook: Evita o commit de arquivos com credenciais
  • Plugável: Permite criar regras personalizadas e configuração flexível
  • Documentação: Descreve o motivo pelo qual a regra detecta algo como segredo

Demonstração Rápida

Você pode visualizar o resultado do linting do secretlint em https://secretlint.github.io/.

Início Rápido

Você pode experimentar o Secretlint no seu projeto com um único comando.

Se você já tem o Docker instalado:

docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"

Se você já tem o Node.js instalado:

npx @secretlint/quick-start "**/*"

Após a execução, Se você obteve um resultado vazio e o status de saída é 0, seu projeto está seguro. Caso contrário, você obteve algum relatório de erro, seu projeto inclui credenciais como dados brutos.

Um exemplo de resultados do secretlint

Se você deseja obter segurança contínua, consulte o guia de instalação a seguir e configure o pre-commit hook e o CI.

Instalação

Usando Docker

Pré-requisitos: Requer Docker

Use nosso contêiner Docker para obter um ambiente com Node.js e secretlint em execução o mais rápido que você puder baixá-los.

Você pode verificar todos os arquivos no diretório atual com o secretlint usando o seguinte comando:

docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"

O contêiner Docker secretlint/secretlint funciona sem configuração por design.

Esta Imagem Docker possui pacotes integrados:

Para mais detalhes, consulte o Dockerfile do secretlint.

Usando Node.js

Pré-requisitos: Requer Node.js 22+.

Secretlint é escrito em JavaScript. Você pode instalar o Secretlint usando o npm:``` npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev

Você deve então configurar um arquivo de configuração:```
npx secretlint --init

Por fim, você pode executar o Secretlint em qualquer arquivo ou diretório assim:``` npx secretlint "**/*"

:memo: O Secretlint suporta [glob pattern](https://github.com/mrmlnc/fast-glob#basic-syntax) e o glob pattern deve ser envolvido por aspas duplas.

Também é possível instalar o Secretlint globalmente usando `npm install --global`. Mas não recomendamos, algumas regras podem ser quebradas globalmente.

### Usando Binário de Execução Única

**Pré-requisitos:** Nenhum

Você pode usar o comando `secretlint` sem Node.js usando um binário de execução única.

1. Baixe o binário mais recente da [página de Releases](https://github.com/secretlint/secretlint/releases) 
2. Altere a permissão do arquivo para executável: `chmod +x ./secretlint`
3. Execute `./secretlint --init` para criar um arquivo de configuração
4. Execute `./secretlint "**/*"` para analisar seu projeto

Para mais detalhes, consulte o README de [publish/binary-compiler](https://github.com/secretlint/secretlint/blob/master/publish/binary-compiler).

## Uso

`secretlint --help` mostra o Uso.

    Secretlint CLI that scan secret/credential data.
    
    Usage
    $ secretlint [file|glob*]
    
    Note
    supported glob syntax is based on picomatch (the engine used by micromatch)
    https://github.com/micromatch/picomatch#globbing-features
    https://github.com/micromatch/micromatch#matching-features
    
    Options
    --init             setup config file. Create .secretlintrc.json file from your package.json
    --format           [String] formatter name. Default: "stylish". Available Formatter: checkstyle, compact, github, jslint-xml, junit, pretty-error, stylish, tap, unix, json, mask-result, table
    --output           [path:String] output file path that is written of reported result.
    --secretlintrc     [path:String] path to .secretlintrc config file. Default: .secretlintrc.*
    --secretlintignore [path:String] path to .secretlintignore file. Default: .secretlintignore
    --stdinFileName    [String] filename to process STDIN content. Some rules depend on filename to check content.
    --no-color         disable ANSI-color of output.
    --no-terminalLink  disable terminalLink of output.
    --no-maskSecrets   disable masking of secret values; secrets are masked by default.
    --no-glob          disable glob pattern interpretation; treat all inputs as literal file paths.
    --no-gitignore     disable .gitignore cascade respect; .gitignore files are
                       respected by default (since v13).
    
    Options for Developer
    --profile          Enable performance profile.
    --secretlintrcJSON [String] a JSON string of .secretlintrc. use JSON string instead of rc file.
    
    Experimental Options
    --locale            [String] locale tag for translating message. Default: en
    
    Examples
    # Scan a single file
    $ secretlint ./README.md

    # Scan all files (wrap glob in double quotes to avoid shell expansion)
    $ secretlint "**/*"
    $ secretlint "source/**/*.ini"

    # Treat inputs as literal paths (for SvelteKit (group) / Next.js [param] etc.)
    $ secretlint --no-glob "src/(auth)/login.ts"

    # Lint STDIN content (filename hint affects which rules apply)
    $ echo "SECRET" | secretlint --stdinFileName=secret.txt

    # Use a custom config file
    $ secretlint "**/*" --secretlintrc=.secretlintrc.custom.json

    # Scan files ignored by .gitignore (e.g. to verify build artifacts)
    $ secretlint --no-gitignore "dist/**/*"

    # Mask secrets in a file in-place
    $ secretlint .zsh_history --format=mask-result --output=.zsh_history

    # Output JSON for programmatic parsing
    $ secretlint "**/*" --format=json --output=secretlint-report.json

    # Output GitHub Actions annotations in CI
    $ secretlint "**/*" --format=github
    
    Exit Status
    Secretlint exits with the following values:
    
        - 0:
          - Linting succeeded, no errors found.
          - Found lint error but --output is specified.
        - 1:
          - Linting failed, errors found.
        - 2:
          - Unexpected error occurred, fatal error.


## Configuração

O Secretlint possui um arquivo de configuração `.secretlintrc.{json,yml,js}`.

- Documentação: [Configurando o Secretlint](https://github.com/secretlint/secretlint/blob/master/docs/configuration.md)

Após executar `secretlint --init`, você terá um arquivo `.secretlintrc.json` em seu diretório.

Nele, você verá algumas regras configuradas assim:```json
{
  "rules": [
    {
      "id": "@secretlint/secretlint-rule-preset-recommend"
    }
  ]
}

A propriedade id é o nome do pacote de regras do secretlint.

Categorias