Volver a actualizaciones
Nuevo releaseJul 22, 2026

secretlint v13.0.4

Herramienta de linting conectable para evitar confirmar credenciales.

Compartir

Secretlint Actions Status

Secretlint is that Pluggable linting tool to prevent committing credentials.

Secretlint es una herramienta de linting conectable para evitar la confirmación de credenciales.

Características

  • Escáner: Encuentra credenciales en un proyecto y las reporta
  • Amigable con el proyecto: Fácil de configurar en tu proyecto e integrar con servicios de CI
  • Hook de Pre-Commit: Evita la confirmación de archivos con credenciales
  • Conectable: Permite crear reglas personalizadas y configuración flexible
  • Documentación: Describe la razón por la que una regla lo detecta como secreto

Demostración rápida

Puedes ver el resultado del linting de secretlint en https://secretlint.github.io/.

Inicio rápido

Puedes probar Secretlint en tu proyecto con un solo comando.

Si ya tienes Docker instalado:

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

Si ya tienes Node.js instalado:

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

Después de ejecutarlo, Si obtienes un resultado vacío y el estado de salida es 0, tu proyecto es seguro. De lo contrario, obtendrás algún informe de error, tu proyecto incluye credenciales como datos sin procesar.

Un ejemplo de resultados de secretlint

Si deseas obtener seguridad continua, consulta la siguiente guía de instalación y configura el hook de pre-commit y CI.

Instalación

Usando Docker

Requisitos previos: Requiere Docker

Usa nuestro contenedor Docker para obtener un entorno con Node.js y secretlint ejecutándose tan rápido como puedas descargarlos.

Puedes revisar todos los archivos bajo el directorio actual con secretlint mediante el siguiente comando:

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

El contenedor Docker secretlint/secretlint funciona sin configuración por diseño.

Esta imagen Docker tiene paquetes integrados:

Para más detalles, consulta el Dockerfile de secretlint.

Usando Node.js

Requisitos previos: Requiere Node.js 22+.

Secretlint está escrito en JavaScript. Puedes instalar Secretlint usando npm:``` npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev

A continuación, debes configurar un archivo de configuración:```
npx secretlint --init

Finalmente, puedes ejecutar Secretlint en cualquier archivo o directorio así:``` npx secretlint "**/*"

:memo: Secretlint admite [glob pattern](https://github.com/mrmlnc/fast-glob#basic-syntax) y el glob pattern debe ir entre comillas dobles.

También es posible instalar Secretlint globalmente usando `npm install --global`. Pero no lo recomendamos, algunas reglas pueden romperse globalmente.

### Usando un binario de ejecución única

**Requisitos previos:** Ninguno

Puedes usar el comando `secretlint` sin Node.js usando un binario de ejecución única.

1. Descarga el último binario desde la [página de Releases](https://github.com/secretlint/secretlint/releases) 
2. Cambia los permisos del archivo a ejecutable: `chmod +x ./secretlint`
3. Ejecuta `./secretlint --init` para crear un archivo de configuración
4. Ejecuta `./secretlint "**/*"` para analizar tu proyecto

Para más detalles, consulta el README de [publish/binary-compiler](https://github.com/secretlint/secretlint/blob/master/publish/binary-compiler).

## Uso

`secretlint --help` muestra el 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.


## Configuración

Secretlint tiene un archivo de configuración `.secretlintrc.{json,yml,js}`.

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

Después de ejecutar `secretlint --init`, tendrás un archivo `.secretlintrc.json` en tu directorio.

En él, verás algunas reglas configuradas así:```json
{
  "rules": [
    {
      "id": "@secretlint/secretlint-rule-preset-recommend"
    }
  ]
}

La propiedad id es el nombre del paquete de reglas de secretlint.

Categorías