Torna agli aggiornamenti
New releaseJul 21, 2026

secretlint v13.0.3

Strumento di linting componibile per prevenire il commit di credenziali.

Condividi

Secretlint Actions Status

Secretlint è uno strumento di linting pluggable per prevenire il commit di credenziali.

Secretlint è uno strumento di linting pluggable per prevenire il commit di credenziali.

Funzionalità

  • Scanner: Trova le credenziali in un progetto e le segnala
  • Project Friendly: Facile da configurare nel tuo progetto e da integrare con i servizi CI
  • Pre-Commit Hook: Previene il commit di file contenenti credenziali
  • Pluggable: Consente di creare regole personalizzate e configurazioni flessibili
  • Documentation: Descrive il motivo per cui una regola rileva un elemento come segreto

Demo rapida

Puoi visualizzare il risultato del linting di secretlint su https://secretlint.github.io/.

Avvio rapido

Puoi provare a usare Secretlint nel tuo progetto con un solo comando.

Se hai già installato Docker:

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

Se hai già installato Node.js:

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

Dopo l'esecuzione, se ottieni un risultato vuoto e lo stato di uscita è 0, il tuo progetto è sicuro. Altrimenti, se ottieni un report di errore, il tuo progetto contiene credenziali come dati in chiaro.

Un esempio di risultati di secretlint

Se desideri ottenere una sicurezza continua, consulta la seguente guida all'installazione e configura il pre-commit hook e la CI.

Installazione

Utilizzo di Docker

Prerequisiti: Richiede Docker

Usa il nostro container Docker per ottenere un ambiente con Node.js e secretlint in esecuzione nel minor tempo possibile.

Puoi controllare tutti i file nella directory corrente con secretlint tramite il seguente comando:

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

Il container Docker secretlint/secretlint funziona senza configurazione per design.

Questa immagine Docker include pacchetti preinstallati:

Per maggiori dettagli, consulta il Dockerfile di secretlint.

Utilizzo di Node.js

Prerequisiti: Richiede Node.js 22+.

Secretlint è scritto in JavaScript. Puoi installare Secretlint usando npm:``` npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev

Dovresti quindi configurare un file di configurazione:```
npx secretlint --init

Infine, puoi eseguire Secretlint su qualsiasi file o directory in questo modo:``` npx secretlint "**/*"

:memo: Secretlint supporta i [glob pattern](https://github.com/mrmlnc/fast-glob#basic-syntax) e i glob pattern devono essere racchiusi tra doppi apici.

È anche possibile installare Secretlint globalmente usando `npm install --global`. Tuttavia, non lo consigliamo, alcune regole potrebbero risultare non funzionanti a livello globale.

### Utilizzo del binario singolo eseguibile

**Prerequisiti:** Nessuno

Puoi usare il comando `secretlint` senza Node.js utilizzando un binario singolo eseguibile.

1. Scarica il binario più recente dalla [pagina delle Release](https://github.com/secretlint/secretlint/releases) 
2. Cambia i permessi del file per renderlo eseguibile: `chmod +x ./secretlint`
3. Esegui `./secretlint --init` per creare un file di configurazione
4. Esegui `./secretlint "**/*"` per analizzare il tuo progetto

Per maggiori dettagli, consulta il README di [publish/binary-compiler](https://github.com/secretlint/secretlint/blob/master/publish/binary-compiler).

## Utilizzo

`secretlint --help` mostra le istruzioni d'uso.

    Secretlint CLI che analizza dati segreti/credenziali.
    
    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.


## Configurazione

Secretlint ha un file di configurazione `.secretlintrc.{json,yml,js}`.

- Documentazione: [Configuring Secretlint](https://github.com/secretlint/secretlint/blob/master/docs/configuration.md)

Dopo aver eseguito `secretlint --init`, avrai un file `.secretlintrc.json` nella tua directory.

Categorie