Серия «GitGram»

0

Я сделал Git прямо в Telegram. Подписчики проголосовали за этот эксперимент — вот что получилось в первой версии

Серия GitGram

В канале @system_develope фишка такая: народ голосует, что я буду пилить дальше. На этот раз выиграл «Git в Telegram». Я такой: ладно, хуй с ним, делаю.

Идея тупо простая: кидаешь файл или ZIP боту → он коммитит → версии хранятся → diff, ветки, история — всё в твоём личном треде в канале. Без GitHub, без терминала, без аккаунтов.

Что уже работает (v0.1, бета):

  • /init <имя> — проект + тред

  • кидаешь файл/ZIP → добавляет, распаковывает, .gitignore работает

  • /commit <сообщение> → коммит + пост в тред

  • /ls — файлы в проекте

  • /status — изменения

  • /diff <файл> — цветной unified diff

  • /branch <имя>, /checkout <имя> — ветки

  • /branches — список с текущей

Права: чужой проект не увидишь и не тронешь (owner_id в базе всё держит).

Фейлы по пути:

  • закинул bot.py в самого себя → Telegram заморозил аккаунт (скрин: привидение «Аккаунт заморожен»)

  • MarkdownV2 ломал всё: «can't parse entities» на каждом символе

  • забыл /start после удаления БД → юзер не существует → пиздец

  • файл без проекта → новый проект с именем файла

Сейчас это уже стабильно для одного + тестеров. БЕТА-ТЕСТ ОТКРЫТ!

Кидайте файлы, ломайте, пишите баги в личку или в @sandbox_hardcore.

Канал: @system_develope

Кто юзал бы такое? Или реально никому нахуй не нужно? Пишите в комментах.

Показать полностью 2
4

Права доступа в GitGram. Не баг а фича

Серия GitGram

Ребята, многие хейтят эту задумку про GitGram, мол это бред и никто не будет его юзать и тд.
Может быть, но мне похер, это эксперимент!
Поэтому просьба,если вам не нравится эта затея, пожалуйста, просто пролистайте дальше.

Решил перед релизом добавить нормальную защиту — чтоб никто в чужой проект не залез, не удалил файлы, не накоммитил говна.

Открываю код, начинаю пилить проверки в /commit, /rm, /branch, /checkout...

И тут меня осеняет:

ДА ОНИ ЖЕ УЖЕ РАБОТАЮТ, СУКА!

С самого начала. Без единой лишней строчки.

Почему так вышло:

Всё просто — проекты привязаны к owner_id в базе. Я это сделал просто потому что "логично", чтоб не было бардака. А оказалось — это и есть та самая защита.

Все запросы сами фильтруются по owner_id: /list — только мои проекты /use чужой — "Проект не найден" /commit, /rm, /branch — даже не доходят до выполнения, потому что проект чужой не выбрать

Протестил с другого акка:

  • /list — вижу только свои проекты

  • /use мой_проект — ❌ "Проект не найден"

  • /commit — бот даже не пытается, потому что проекта нет

Итог: хотел безопасность — а она уже была вшита в архитектуру с первого дня.

Такая вот "не баг, а фича" вышла. Иногда самый простой дизайн — самый крепкий.
Скоро релиз Гитграмма, следите на канале

Вся кухня в sandbox — заходи смотреть в реалтайме: @sandbox_hardcore

Ребята, многие хейтят эту задумку про GitGram, мол это бред и никто не будет его юзать и тд.
Может быть, но мне похер, это эксперимент!
Поэтому просьба,если вам не нравится эта затея, пожалуйста, просто пролистайте дальше.

Показать полностью
2

Напилил ветки в своём Gitgram

Серия GitGram

Всем привет, народ!

Продолжаю пилить Gitgram — это мой безумный эксперимент: полноценный git-подобный репозиторий прямо внутри Telegram-бота. Без GitHub, без браузера, всё через команды в чате.

Сегодня полностью закрыл ветки — теперь можно создавать, переключаться и видеть список. Вот что получилось:

Что напилил:

  • Добавил поле current_branch в таблицу projects

  • Создал новую таблицу branches:

Напилил ветки в своём Gitgram
  • Написал функцию get_current_branch(project_id) — возвращает текущую ветку, по умолчанию main

  • Команда /branches — показывает все ветки проекта + отмечает текущую. Если веток нет — автоматом создаёт main

  • Команда /branch <name> — создаёт новую ветку (с проверкой, что такой уже нет)

  • Команда /checkout <name> — переключается на ветку (обновляет current_branch в базе)

Был баг: sqlite3.OperationalError: no such column: current_branch Решил классикой: удалил старую базу, перезапустил бота — колонка добавилась автоматически. Иногда проще всё снести, чем фиксить миграции 😅

Тесты: Создал ветку test → переключился → /branches показал всё как надо. Работает заебись!

Скриншоты тестов и логов — в моём чате-дневнике, или на канале если интересно.

Теперь Gitgram умеет ветки — следующий шаг будет diffs (сравнение файлов между коммитами/ветками), но это уже завтра.

Что думаете?

  • Нормально ли выглядит идея git в Telegram?

  • Стоит ли дальше пилить PR/merge/issues?

  • Или это уже перебор и пора на этом остановиться? 😄

Пишите в комментах, что дальше пилить — могу сделать голосование в следующем посте.

Показать полностью 1

Мой Telegram-бот сожрал свой же код и Telegram его заморозил н. RIP GitGram

Серия GitGram
Мой Telegram-бот сожрал свой же код и Telegram его заморозил н. RIP GitGram

Короче, пиздец полный. Тестировал GitGram вчера ночью: случайно закинул в него свой собственный bot.py (aiogram, handlers, всё как положено). Бот принял как обычный файл, распарсил, сделал коммит, запостил превью в канал с подсветкой синтаксиса. Всё красиво, всё работает.

Через пару часов просыпаюсь — меня выкидывает из аккаунта на всех устройствах. Захожу заново по смс — окей. А бот заморожен (или удалён хуй пойми).
Писать ему нельзя, он ghost. Файлы/ссылки из прошлого остались, но новый ввод — хуй там.

Telegram антиспам увидел: бот получает и публично постит код, который выглядит как его собственный (import aiogram, BOT_TOKEN в конфиге, @router.message и т.д.). Скорее всего флаганул как self-replication / потенциальный worm / спам-бот, который размножается. Даже если токены в отдельном файле — структура кода + публичный пост в канал хватило, чтобы система решила: "это подозрительно, фризим owner'а бота".

Сейчас бот в статусе "заморожен, был давно" — классический временный бан на 12–72 часа (иногда до 5 дней). Если не оттает — сделаю новый токен.А пока продолжу писать код,Сейчас на этапе создания веток.
Кому интересен процесс разработки,прошу в Канал!)

Кто проходил такое? Сколько обычно живёт бот после такого? Или это уже перманент и пора валить на Discord/VK/Matrix?

Показать полностью 1

#2 Gitgram в процессе разработки...

Серия GitGram


Неделю ебался с разметкой Телеграмм

С момент начала разработки прошло чуть меньше недели. Рассказываю что изменилось.

Что добавил:

  • Удаление файлов и проектов (/rm, /rmproject)

  • Игнор-файлы (.idea/, __pycache__, venv теперь не летят в канал)

  • ZIP-загрузку — кидаешь архив, бот сам распаковывает, ищет .gitignore, применяет игнор, раскладывает по проекту

  • Версионность (можно откатиться, но команды пока нет)

Главная боль:
Markdown в Telegram — это просто пиздец. Он упорно пытался парсить символы внутри блоков кода, даже когда они были обернуты в ```. < !DOCTYPE в HTML-файлах триггерил парсер, точки и скобки сыпали ошибками.

Перепробовал кучу вариантов экранирования:

#2 Gitgram в процессе разработки...

Код превращался в кашу. Не экранировать — Telegram шлёт нахуй.

Как решил:
Забил на Markdown для кода. Перешел на HTML:

  • В канал летит <pre><code> с parse_mode="HTML"

  • Пользователю отправляю обычный текст без разметки

  • Убрал двойное экранирование

    Теперь код нормально подсвечивается, HTML не ломается, точка не ебет мозг.

    Что уже работает:
    /init, /use, /ls, /commit, /log, /status, /rm, /rmproject, ZIP-загрузка, игнор-файлы.
    Что дальше:
    Коллаборация (несколько человек на проект), приватные проекты.

    Кто хочет посмотреть как это варится (и иногда подсказывать) — залетайте в чат: @sandbox_hardcore
    Там всё без цензуры.
    Основной канал: @system_develope

Показать полностью 1
7

Git в Телеграм??...

Серия GitGram
Git в Телеграм??...

Решил запилить бота, который превращает Telegram в Git-репозиторий. Чтобы можно было через личку кидать файлы, коммитить, смотреть историю — и всё это в публичном канале с тредами.

Как это будет работать:

  • Кидаешь боту файл — создаётся проект (или добавляется в текущий)

  • Файлы улетают в канал @gitgram (каждый проект — отдельный тред)

  • Команды: /init, /commit, /log, /ls, /status

  • Версионность хранится в SQLite, можно откатиться назад
    Что уже готов:

  • Архитектура (сущности, связи)

  • Каркас бота на aiogram

  • База данных с таблицами под users, projects, files, commits, file_versions

    Первая проблема:

    Markdown в Telegram — это пиздец. Код постоянно содержит символы, которые нужно экранировать: точки, подчеркивания, обратные слеши. Если всё экранировать подряд — код превращается в кашу. Если не экранировать — Telegram шлёт нахуй. Пришлось писать свой костыль, который сначала экранирует одно, потом другое, и надеяться что ничего не сломается.

    python
    def escape_markdown_v2(text: str) -> str:
    """Экранирует все спецсимволы MarkdownV2"""
    special_chars = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!']
    for char in special_chars:
    text = text.replace(char, f'\\{char}')
    return text


    def format_code(filename: str, content: str) -> str:
    """Форматирует код для отправки в Telegram с подсветкой синтаксиса"""
    lang = get_language_from_filename(filename)

ДАЛЬШЕ:

  • Допилить .gitignore (чтоб венв и кеш не летели в канал)

  • Коллаборация — чтобы несколько человек могли пилить один проект

  • Приватные проекты (пока всё публичное)

    ЗАЧЕМ? А ГЛАВНОЕ НАХУЯ??

    Если хочешь не просто читать, а смотреть как это варится и иногда подсказывать — залетай в чат: @sandbox_hardcore
    Там всё как есть, без цензуры и без прикрас.
    Остальное в моем
    КАНАЛЕ!)

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества