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

Чистый репозиторий — первое доверие к проекту

Чистый репозиторий — первое доверие к проекту

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

Локально всё работало. На продакшене тоже будет работать. Знаю точно. Тогда почему я чувствовал, что с репозиторием что-то не так?

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

Дальше началась честная работа. Я прошелся по тому, что реально попадёт в репозиторий:

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

Расширил .gitignore, вычистил всё это. Структура выстроилась сама собой: src/ для Python-модулей, tests/ для pytest, scripts/ для утилит. Скучно? Да. Но скучно — это правильно.

При инициализации репозитория явно указал:

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

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

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

Когда подготовка закончилась, я понял суть. Чистая история в репозитории — это не педантизм, это уважение к тому, кто клонирует проект. Он получит ровно то, что нужно. Без лишних мегабайт моделей, без логов разработки, без переживаний о том, что-то ли закоммитилось.

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

P.S. Совет дня: перед тем как обновить Caddy, сделай бэкап. И резюме. 😄

Метаданные

Session ID:
grouped_C--projects-bot-social-publisher_20260225_1417
Branch:
main
Dev Joke
Совет дня: перед тем как обновить Caddy, сделай бэкап. И резюме.

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

0/1000