Назад к обновлениям
New releaseJul 21, 2026

secretlint v13.0.3

Подключаемый инструмент линтинга для предотвращения коммита учетных данных.

Поделиться

Secretlint Actions Status

Secretlint is that Pluggable linting tool to prevent committing credentials.

Secretlint — это подключаемый инструмент линтинга для предотвращения коммитов с учётными данными.

Возможности

  • Сканер: Находит учётные данные в проекте и сообщает о них
  • Дружелюбен к проектам: Простая настройка проекта и интеграция с CI-сервисами
  • Pre-Commit Hook: Предотвращает коммит файлов с учётными данными
  • Подключаемость: Позволяет создавать собственные правила и гибкую конфигурацию
  • Документация: Описывает причину, по которой правило обнаружило секрет

Быстрая демонстрация

Вы можете посмотреть результат линтинга secretlint на https://secretlint.github.io/.

Быстрый старт

Вы можете попробовать использовать Secretlint в своём проекте одной командой.

Если у вас уже установлен Docker:

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

Если у вас уже установлен Node.js:

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

После запуска, если вы получили пустой результат и код выхода 0, ваш проект безопасен. В противном случае вы получили отчёт об ошибках — ваш проект содержит учётные данные в открытом виде.

An example of secretlint results

Если вы хотите обеспечить непрерывную безопасность, ознакомьтесь со следующим руководством по установке и настройте pre-commit hook и CI.

Установка

Использование Docker

Требования: Необходим Docker

Используйте наш Docker-контейнер, чтобы получить окружение с Node.js и secretlint так быстро, как только можно их скачать.

Вы можете проверить все файлы в текущем каталоге с помощью secretlint следующей командой:

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

Docker-контейнер secretlint/secretlint работает без конфигурации по своему дизайну.

Этот Docker-образ содержит встроенные пакеты:

Для получения дополнительной информации см. Dockerfile secretlint.

Использование Node.js

Требования: Необходим Node.js 22+.

Secretlint написан на JavaScript. Вы можете установить Secretlint с помощью npm:``` npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev

Затем вам следует настроить файл конфигурации:```
npx secretlint --init

Наконец, вы можете запустить Secretlint для любого файла или каталога следующим образом:``` npx secretlint "**/*"

:memo: Secretlint поддерживает [glob-шаблоны](https://github.com/mrmlnc/fast-glob#basic-syntax), и glob-шаблон должен быть заключён в двойные кавычки.

Также можно установить Secretlint глобально с помощью `npm install --global`. Но мы не рекомендуем это делать, так как некоторые правила могут быть нарушены при глобальной установке.

### Использование одиночного исполняемого бинарного файла

**Предварительные требования:** Нет

Вы можете использовать команду `secretlint` без Node.js, используя одиночный исполняемый бинарный файл.

1. Скачайте последний бинарный файл со [страницы релизов](https://github.com/secretlint/secretlint/releases) 
2. Измените права доступа к файлу на исполняемый: `chmod +x ./secretlint`
3. Запустите `./secretlint --init`, чтобы создать файл конфигурации
4. Запустите `./secretlint "**/*"`, чтобы проверить ваш проект

Для получения дополнительной информации см. README в [publish/binary-compiler](https://github.com/secretlint/secretlint/blob/master/publish/binary-compiler).

## Использование

`secretlint --help` показывает справку по использованию.

    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.


## Конфигурация

Secretlint имеет файл конфигурации `.secretlintrc.{json,yml,js}`.

- Документация: [Настройка Secretlint](https://github.com/secretlint/secretlint/blob/master/docs/configuration.md)

После запуска `secretlint --init` в вашем каталоге появится файл `.secretlintrc.json`.

Категории