Как мы почистили репозиторий перед публикацией AI Salebot

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