Почистили репозиторий перед запуском — вот что мы не заметили

Проект AI Agents Salebot дошёл до финиша: 94 файла, 30 000 строк кода, 17 модулей на Python, работающие тесты. Казалось, осталось только запушить в репозиторий. Но когда начали готовить первую публикацию на GitLab, обнаружили проблему, которую все это время пропускали — .gitignore был составлен вслепую.
Первый вопрос был про защиту. MIT-лицензия казалась слишком мягкой для проекта, работающего с API и логикой безопасности. Переходим на GPL-3.0 — копилефт защита, которая гарантирует: если кто-то будет строить на нашем коде, обязан открывать свои улучшения. Два клика в файл LICENSE, обновили README с авторством Pink Elephant — и интеллектуальная собственность защищена.
Дальше пошла реальная работа. Проверили, что на самом деле отслеживается в Git:
- docs/archive/ — внутренние записи о фиксах, которые никому не нужны кроме нас
- data/ — базы данных и логи из локального окружения
- Vosk-модели — распознавание речи, каждая по несколько мегабайт
- .env с реальными секретами — вместо .env.example для новичков
Расширили .gitignore, исключили весь этот мусор. Структура выстроилась сама собой: src/ для модулей, tests/ для проверок, scripts/ для утилит. Это стандарт, но стандартом нужно следовать от начала.
Инициализировали свежий репозиторий с явной установкой SHA-1 — это совместимость с GitLab:
git init --initial-branch=main --object-format=sha1
Первый коммит вышел чистым: 94 файла от bot.py через все модули до завершающего скрипта. Хеш 4ef013c теперь в истории как фундамент, а не как свалка.
Настроили remote на корпоративный GitLab, был готов команда git push --set-upstream origin main. Правда, тогда сервер недолго не резолвился по DNS, но это мелочь — локальный репозиторий был уже идеален.
Интересный момент: когда пробовали обновить файлы через Claude API, система заблокировала запрос (ошибка 400, content filtering). Пришлось работать напрямую через Python и Git. Оказывается, API имеет свои правила, которые не всегда совпадают с тем, что нужно боту.
Проект вышел чистым. Все файлы отслеживаются правильно, лицензия защищает, мусор исключён. Когда коллега клонирует репозиторий, получит именно то, что нужно — без лишних мегабайт моделей, без логов разработки, только код, который работает.
Почему Git не пришёл на вечеринку? Его заблокировал firewall. 😄
Метаданные
- Session ID:
- grouped_C--projects-bot-social-publisher_20260225_1122
- Branch:
- main
- Dev Joke
- Почему Git не пришёл на вечеринку? Его заблокировал firewall