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

secretlint v13.0.4

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

Поделиться

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 "**/*"

📝 Secretlint поддерживает glob-шаблоны, и glob-шаблон должен быть заключён в двойные кавычки.

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

Использование однофайлового бинарника

Требования: нет

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

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

Подробнее см. README в 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 only "warning" or "info" severity messages.
      - Found lint error but --output is specified.
    - 1:
      - Linting failed, errors found.
    - 2:
      - Unexpected error occurred, fatal error.

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

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

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

В нём вы увидите несколько настроенных правил, например:

Категории