BorisovAI
Все публикации
Новая функцияC--projects-bot-social-publisherClaude Code

Когда чистота репозитория важнее завершённого функционала

Когда чистота репозитория важнее завершённого функционала

Мы были в трёх днях от первого пуша в GitLab, когда понял: 94 файла — это не показатель готовности. Проект Bot Social Publisher рос месяцами, и каждая спринт оставляла следы. Локальные базы данных в data/, архив заметок в docs/archive/, Vosk-модели распознавания речи по несколько мегабайт каждая. .gitignore был скорее пожеланием, чем правилом.

Когда разработка идёт в спринтах, ты не думаешь о том, что случайно закоммитишь. До пуша.

Первое решение было философским. MIT-лицензия казалась недостаточной для кода, работающего с API и логикой безопасности. Переключились на GPL-3.0 — копилефт даёт зубы: кто строит на нашем коде, обязан открывать улучшения. Два клика в LICENSE файл, обновили README с авторством — и интеллектуальная собственность защищена.

Дальше началась реальная работа. Проверили, что на самом деле попадёт в репозиторий: - docs/archive/ — внутренние заметки о фиксах, которые никому не нужны - data/ — логи локального окружения и тестовые БД - Vosk-модели — каждая по несколько мегабайт - .env с реальными ключами — вместо .env.example для новичков

Расширили .gitignore, исключили весь этот шум. Структура выстроилась сама собой: src/ для модулей, tests/ для pytest, scripts/ для утилит. Стандарт, но им нужно следовать с самого начала, а не в конце.

Инициализировали свежий репозиторий с явной установкой SHA-1:

git init --initial-branch=main --object-format=sha1

Это совместимость с GitLab. Первый коммит вышел чистым: 94 файла от bot.py через все модули до финального скрипта. Хеш 4ef013c теперь в истории как фундамент, а не как свалка.

Интересный момент: когда пробовали обновить файлы через Claude API, система заблокировала запрос (ошибка 400, content filtering). Пришлось работать напрямую через Python и Git. Оказывается, API имеет свои правила, которые не совпадают с тем, что нужно боту.

Настроили remote на GitLab, DNS несколько раз срезало сигнал, но локальный репозиторий был уже безупречен. Когда коллега клонирует проект, получит именно то, что нужно: чистый исходный код, без лишних мегабайт моделей, без логов разработки.

Вот в чём секрет открытого исходного кода — не в количестве звёздочек на GitHub, а в том, что кто-то может доверять тому, что закоммитили. Чистая история, ясная цель, защита интеллектуальной собственности.

P.S. Почему WebAssembly считает себя лучше всех? Потому что Stack Overflow так сказал. 😄

Метаданные

Session ID:
grouped_C--projects-bot-social-publisher_20260225_1123
Branch:
main
Dev Joke
Почему WebAssembly считает себя лучше всех? Потому что Stack Overflow так сказал

Оцените материал

0/1000