Чтобы не запушить случайно секреты в гит репозиторий, можно использовать логику pre-commit с запуском gitleaks локально.
В удаленном репозитории с нашими security пайпами создадим файлик .pre-commit-hooks.yaml:
- id: gitleaks
name: Detect hardcoded secrets
description: Detect hardcoded secrets using Gitleaks
entry: <gitleaks_image> gitleaks detect -c /srv/config.toml -v -s ./ -r /tmp/gitleaks_report.txt
language: docker_image
/srv/config.toml - конфиг с рулами, он зашит в образе gitleaks.
Ставим себе pre-commit утилиту:
python3 -m pip install --break-system-packages pre-commit
И создаем в корне нашего репозитория, где хотим использовать данный функционал файлик .pre-commit-config.yaml:
repos:
- repo: git@<domain>:path/to/<repo>.git
rev: main
hooks:
- id: gitleaks
Установить хук:
pre-commit install
Обновить:
pre-commit autoupdate
Запустить руками:
pre-commit run
Теперь после commit-а будет запускаться сканирование репозитория.
Если нужно добавить исключение, то в корне создаем .gitleaksignore и добавляем туда fingerprint, полученный после сканирования.
#devsecops