Бот готов и работает. Осталось сделать его частью портфолио: выложить код на GitHub и показать. GitHub это сайт, где программисты хранят и показывают свой код. Репозиторий с твоим ботом это то, что ты покажешь, когда скажешь «я умею делать ботов». Не диплом, а живой результат, который можно потрогать.
После урока сможешь: объяснить тему «Выложи на GitHub и покажи» и выполнить связанный с ней учебный шаг без подсказки.
Сначала про безопасность
Самый важный момент урока. На GitHub код видят все. Если ты выложишь config.py с токеном, любой заберёт твой токен и угонит бота. За весь курс мы берегли токен, и сейчас доведём это до конца. Перед выкладкой создай файл .gitignore и впиши в него одну строчку: config.py. Это список того, что НЕ выкладывать. Git увидит строчку и никогда не отправит config.py на GitHub.
Хорошая привычка: положи рядом файл
config.example.pyсо строкойTOKEN = "ВСТАВЬ_СВОЙ_ТОКЕН"(без настоящего токена). Его коммитить МОЖНО — по нему другой человек поймёт, что нужно создать свойconfig.pyсо своим токеном. Проверка: передpushнабериgit statusи убедись, чтоconfig.pyв списке НЕ появился.
Выкладываем код
Git — программа, которая хранит историю версий кода и отправляет его на GitHub. Скорее всего, у тебя её ещё нет — поставим. Скачай установщик с git-scm.com (кнопка Download) и ставь с настройками по умолчанию. Потом закрой терминал, открой заново и проверь:
git --version
git version 2.47.0.windows.1
Ответ с номером версии — Git на месте (цифры могут быть другими). Если терминал пишет «не является внутренней или внешней командой» (на Mac — «command not found»), он открыт до установки: закрой его и открой снова. Один раз скажи Git, кто ты, — иначе первый коммит закончится ошибкой «Please tell me who you are»:
git config --global user.name "Твоё имя"
git config --global user.email "почта@пример.ру"
Теперь в папке бота по шагам:
git init
git add .
git commit -m "Мой бот"
git init заводит хранилище в папке. git add . собирает файлы (кроме тех, что в .gitignore). git commit сохраняет снимок с подписью. Проверь глазами: в списке файлов на коммит config.py быть не должно.

Теперь создай пустой репозиторий на сайте github.com (кнопка New repository, придумай имя). GitHub покажет адрес. Подключи его и отправь код:
git branch -M main
git remote add origin адрес_твоего_репозитория
git push -u origin main
git branch -M main называет ветку main, как ждёт GitHub. При первом push откроется окно входа в GitHub — войди через браузер (пароль от аккаунта, набранный в терминале, не подойдёт). Обнови страницу репозитория на GitHub. Твой код там, только без config.py, как и задумано.
Пошагово — и что проверить после каждого шага:
1. Создал.gitignoreсо строкойconfig.py→ вgit statusфайла config.py нет.
2.git init,git add .,git commit→ коммит создан, config.py в него не попал.
3. New repository на github.com → открылась страница пустого репозитория.
4.git remote add origin …,git push→ обнови страницу репозитория: файлы появились, config.py НЕТ.
5. ДобавилREADME.md→ на странице репозитория виден его текст.
Если не получилось — частые ошибки:
• Вgit statusвсё-таки есть config.py — .gitignore лежит не в той папке или в нём опечатка. Если файл уже попал в коммит:git rm --cached config.py, потом новый коммит. Токен, который успел уйти на GitHub, отзови в @BotFather (кнопка «Revoke»).
•error: src refspec main does not match any— ещё нет ни одного коммита. Сначалаgit commit, потомpush.
•remote origin already exists— адрес уже подключён. Замени его:git remote set-url origin адрес_репозитория.
• При push спрашивает пароль и не принимает — входи через окно браузера, обычный пароль GitHub в терминале не работает. Подробно — в документации GitHub.
Добавь README
README это визитка проекта, первое, что видят на странице. Сделай простой файл README.md и напиши пару абзацев: что за бот, что умеет, как запустить (поставить библиотеку, вписать свой токен в config.py, запустить). Хороший README сразу показывает, что ты сделал проект, а не просто накидал код.
Покажи бота
Финальный шаг курса, мини-защита. Запусти бота и проведи демо: покажи, что он делает. А потом расскажи своими словами, как он устроен и какие кирпичи курса ты применил. Своими словами это важно: когда объясняешь сам, без шпаргалки, ты понимаешь, что разобрался по-настоящему.
Ты прошёл курс
Остановись на секунду и оглянись. Ты начинал с нуля, а теперь у тебя коллекция ботов: эхо, меню, угадайка, викторина, бот-память, бот-погода, напоминалка, боты в ВК и Max, и твой собственный проект на GitHub. Это серьёзно. Ты умеешь не один инструмент, ты понимаешь, как устроены боты вообще.
Куда расти дальше
- «Создание 2D и 3D игр на Python», если тянет к разработке;
- «Веб-скрейпинг на Python», собирать данные из интернета по-крупному;
- «Основы SQL», если захочешь хранить данные серьёзно;
- «Backend разработчик на Python», настоящая серверная разработка.
Контрольный вопрос. Какой командой git заводят хранилище в папке проекта? Напиши команду: git ____.
Подсказка: Эта команда создаёт пустой репозиторий прямо в текущей папке — с неё начинают, ещё до добавления файлов и первого коммита.
Онлайн-проверка ответа появится позже
Задание. Добавь config.py в .gitignore, выложи код на GitHub (репозиторий, коммит, push, короткий README) и покажи бота на демо, рассказав своими словами, как он устроен. Пришли ссылку на репозиторий (без токена в коде) и видео-демо.
Подсказка: Сначала .gitignore с config.py, проверь что токена нет в коммите. README — что за бот и как запустить. На защите объясняй своими словами.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Зачёт (финал), если:
✅config.pyвнесён в.gitignore, иgit statusего не показывает;
✅ код на GitHub, в репозитории есть README, а файлаconfig.pyв нём НЕТ;
✅ проведено демо: показал бота и рассказал своими словами, какие кирпичи применил;
✅ прислана ссылка на репозиторий (без токена в коде) и видео-демо.
