Retour aux mises à jour
New releaseJul 21, 2026

secretlint v13.0.3

Outil de linting enfichable pour éviter de commiter des identifiants.

Partager

Secretlint Actions Status

Secretlint is that Pluggable linting tool to prevent committing credentials.

Secretlint est un outil de linting pluggable pour empêcher la validation d'identifiants.

Fonctionnalités

  • Scanner : Trouver les identifiants dans un projet et les signaler
  • Compatible avec les projets : Configuration facile de votre projet et intégration des services CI
  • Hook de pré-commit : Empêcher la validation de fichiers d'identifiants
  • Pluggable : Permet de créer des règles personnalisées et une configuration flexible
  • Documentation : Décrit la raison pour laquelle une règle détecte un secret

Démo rapide

Vous pouvez consulter le résultat du linting de secretlint sur https://secretlint.github.io/.

Démarrage rapide

Vous pouvez essayer d'utiliser Secretlint sur votre projet en une seule commande.

Si vous avez déjà installé Docker :

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

Si vous avez déjà installé Node.js :

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

Après l'exécution, Si vous obtenez un résultat vide et que le statut de sortie est 0, votre projet est sécurisé. Sinon, vous obtenez un rapport d'erreur, votre projet contient des identifiants en données brutes.

Un exemple de résultats de secretlint

Vous souhaitez obtenir une sécurité continue, veuillez consulter le guide d'installation suivant et configurer le hook de pré-commit et la CI.

Installation

Utilisation de Docker

Prérequis : Nécessite Docker

Utilisez notre conteneur Docker pour obtenir un environnement avec Node.js et secretlint fonctionnant aussi rapidement que vous pouvez les télécharger.

Vous pouvez vérifier tous les fichiers du répertoire courant avec secretlint à l'aide de la commande suivante :

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

Le conteneur Docker secretlint/secretlint fonctionne sans configuration par conception.

Cette image Docker intègre les paquets suivants :

Pour plus de détails, veuillez consulter le Dockerfile de secretlint.

Utilisation de Node.js

Prérequis : Nécessite Node.js 22+.

Secretlint est écrit en JavaScript. Vous pouvez installer Secretlint en utilisant npm :``` npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev

Vous devez ensuite configurer un fichier de configuration :```
npx secretlint --init

Enfin, vous pouvez exécuter Secretlint sur n'importe quel fichier ou répertoire comme ceci :``` npx secretlint "**/*"

:memo: Secretlint prend en charge les [glob patterns](https://github.com/mrmlnc/fast-glob#basic-syntax) et le glob pattern doit être entouré de guillemets doubles.

Il est également possible d'installer Secretlint globalement en utilisant `npm install --global`. Mais nous ne le recommandons pas, certaines règles peuvent être cassées globalement.

### Utilisation d'un binaire unique exécutable

**Prérequis :** Aucun

Vous pouvez utiliser la commande `secretlint` sans Node.js en utilisant un binaire unique exécutable.

1. Téléchargez le dernier binaire depuis la [page Releases](https://github.com/secretlint/secretlint/releases) 
2. Changez les permissions du fichier pour le rendre exécutable : `chmod +x ./secretlint`
3. Exécutez `./secretlint --init` pour créer un fichier de configuration
4. Exécutez `./secretlint "**/*"` pour analyser votre projet

Pour plus de détails, veuillez consulter le README de [publish/binary-compiler](https://github.com/secretlint/secretlint/blob/master/publish/binary-compiler).

## Utilisation

`secretlint --help` affiche l'utilisation.

    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.


## Configuration

Secretlint dispose d'un fichier de configuration `.secretlintrc.{json,yml,js}`.

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

Catégories