Gitlab Gitleaks
Overview
Заголовок раздела «Overview»Gitleaks (через GitLab Secrets Analyzer) сканирует репозиторий на утечки секретов (токены, API-ключи, пароли, приватные ключи и другие)
Requirements
Заголовок раздела «Requirements »- В Sequences перед этим инструментом должен быть добавлен job Code Downloader
Run modes
Заголовок раздела «Run modes»Поддерживаются два режима:
- git — сканирование истории коммитов, ограничения:
- Ограничено историей, доступной в локальной
.git - Ограничено настройкой depth на этапе job code downloader (чем меньше depth — тем меньше коммитов попадёт в анализ).
- Ограничено значением GIT_DEPTH (параметр –max-count для git log).
- Ограничено историей, доступной в локальной
- dir — сканирование файлов в рабочей директории (без истории коммитов)
How it works
Заголовок раздела «How it works »Сканер использует официальный docker-образ:
registry.gitlab.com/gitlab-org/security-products/analyzers/secrets:latest
Команда запуска
if [ "$GITLEAKS_MODE" = "git" ]; then /analyzer run \ --target-dir "$SEC_CODE_FOLDER" \ --git-log-options "--max-count=$GIT_DEPTH" \ --indentelse /analyzer run \ --target-dir "$SEC_CODE_FOLDER" \ --max-depth "$DIRECTORY_SCAN_DEPTH" \ --ignore-hidden-dirs="$SEARCH_IGNORE_HIDDEN_DIRS" \ --indentficp gl-secret-detection-report.json "/data/$REPORT_FILE_NAME"Environment variables
Заголовок раздела «Environment variables»| Переменная | Пример | Обязательная | Описание |
| SEC_CODE_FOLDER | Да | Путь к исходному коду. Проставляется автоматический | |
| REPORT_FILE_NAME | gl-secret-detection-report.json | Да | Имя отчёта |
| SCAN_TYPE | GitLab Gitleaks | Да | Тип сканирования для парсинга |
| GITLEAKS_MODE | dir | Да | Режим сканирования: история коммитов (git) или рабочая директория (dir). |
| GIT_DEPTH | 50 | Да | Максимум коммитов для анализа в режиме git (передаётся через --git-log-options). |
| DIRECTORY_SCAN_DEPTH | 50 | Да | Максимальная глубина обхода директорий в режиме dir. |
| SEARCH_IGNORE_HIDDEN_DIRS | false | Нет | Игнорировать скрытые директории в режиме dir (true/false). |
Notes & troubleshooting
Заголовок раздела «Notes & troubleshooting»- Режим
gitзависит от того, как репозиторий был скачан до старта контейнера (например,git clone --depth 50). Сканер может анализировать только те коммиты, которые доступны в локальной.git - В логах могут появляться предупреждения (WARN) о попытках git fetch внутри контейнера — это ожидаемое поведение и само по себе не является ошибкой