Skip to content

Commit

Permalink
Release (#290)
Browse files Browse the repository at this point in the history
* update workflow, add new ENV vars

* Feature/er diagramm (#100)

* add diagramm

* change er diagramm

* update diagramm

* update django settings, update stage workflow

* add django user model

* update Dockerfile

* update dockerfile (#102)

Co-authored-by: fr0stfree <me@frostfree.ru>

* Revert 101 fix/issue 88 stage workflow (#104)

* update dockerfile

* hotfix/update-settings-to-fix-stage

---------

Co-authored-by: fr0stfree <me@frostfree.ru>

* add BotSettings model

* Feature/upmenu delete (#107)

* removed upmenu handler, merged functionality with start handler

* removed depricated menu_handler import

---------

Co-authored-by: Alexander Lonskiy <alexanderlonskiy@MBP-Alexander.netis.cc>

* add fund models (#99)

* add fund models

* add app core

* fix flake8 error

* change models

* fix after review

* inherit bot_settings model from base_model

* delete username field from User model

* fix db connection params

* change assistance keyboard to async

* delete username from User model

* update mailing system to django style

* fix linter

* fix event_loop and staticfiles (#117)

* update env on deploy action (#118)

* add role selector in django admin

* change makefile and BACKEND_URL setup

* remove migration line from makefile

* email backend in .env

* add in stage action email_backend env

* add factory models django (#119)

* add factory models django

* Добавил ввод количества данных фабрик

* localized

* fix collectstatic command

* Изменил модель Question, добавил модели в админку (#125)

* Изменил модель Question, добавил модели в админку

* add Region to admin

* Feature/migrate collectstatic (#126)

* Added migrate, collectstatic to docker compose, makefile

* replaced python3 with python

* created different container for django commands

* added dependancy on bot container

---------

Co-authored-by: Alexander Lonskiy <alexanderlonskiy@MBP-Alexander.netis.cc>

* Added logger to handlers (#67)

* Added logger to handlers (#67) fixed

* add retrieving regions from db

* fixed path of DEBUG (#67)

* fix question type in common questions

* Update debug_handlers.py

added user_id = update.callback_query.from_user.id

* Добавил ввод количества типа вопроса (#134)

* modify Region Factory

* change Coordinator model (#136)

* Fixed fields of Question Admin form (#130) (#135)

* Resorted field of Question Admin form (#130)

* corrected relative paths to absolute paths (#130)

* refactor of bot.py patterns

* refactor of constants dir

* Автоматизировал развертку бота для локальной разработки

* Добавил задержку на развертывание и удаление БД

* Добавил задержку после успешного выполнения таргетов

* Добавил автоматическое документирование по строчкам комментариев

* Рефакторинг

* change verbose name for apps

* fixed: requirements/develop.txt (#148)

* change validator for coordinator (#147)

* fixed region display in admin

* add nginx configuration for serving static

* configure nginx for wordpress app

* Обновлен Makefile

* Добавлен файл с пагинатором для данных в inline-меню telegram

* Данные о доступных типах помощи выделены в отдельный класс и вынесены за пределы модели Question

* Рефакторинг: добавлены док-стринги, форматирование строк приведено к единому типу

* Переменная assistance_questions_keyboard удалена, функционал генерации keyboard с вопросами из БД реализован в bot\keyboards\assistance.py

* В переменных callback_data данные задаются из единого класса HelpTypes, определенного в src/bot/models.py чтобы избежать дублирования констант в коде

* Рефакторинг

* Типы вопросов подтягиваются из единого класса HelpTypes, чтобы избежать дублирования констант в коде

* Создание паттерна HELP_TYPE проводится из данных единого класса HelpTypes, чтобы избежать дублирования констант в коде

* Добавлены паттерны парсинга данных callback для реализации пагинации

* Добавлены функции для построения inline-меню вопросов из БД.

* Рефакторинг: добавлены док-стринги, удалены ненужные переменные.

* В обработчике select_assistance добавлена генерация inline-меню вопросов из БД.

* Рефакторинг: удалены ненужные импорты, все док-стринги переведены на английский язык.

* Добавлено условие на сохранение данных в context.user_data: сохранение происходит только в том случае, если callback_data не является текущим State (является регионом). Необходима для корректной работы навигации в inline-меню.

* Добавлен обработчик ask_question в State.ASSISTANCE_TYPE для корректной работы inline-меню.

* Добавлен файл __init__.py в utils.

* returned to previous version

* Поле полного вопроса question заменено на короткое описание short_description.

* Добавлено условие, что замена обновление reply_markup в сообщении происходит только в случае его обновления.

* Изменено форматирование пагинатора чтобы была возможность проводить сравнение reply_markup.

* Добавил кнопки возврата к исходному состоянию и предыдущему шагу в форме "задать вопрос" (#153)

* Добавил кнопки возврата к исходному состоянию и предыдущему шагу в форме "задать вопрос", немного пофиксил код

* fixed: keyboard, handlers, back_handler

* fixed: back_handler

* fixed: keyboards, handlers, back_handler, makefile

* fixed: assistance

* Revert "fixed: assistance"

This reverts commit c270ec2.

pre-commit fixed

* Revert "Revert "fixed: assistance""

This reverts commit 35959aa.

* fixed: keyboards, handlers

* fixed: handlers, keyboards

* refactor of constants dir

* added proxy-model Region (#161)

* fixed: bot, added: fund_program_keyboard, fund_programs_handler

* fixed: service_handlers.py

* added the ability to get coordinator's contacts from db

* nginx host and port are env variables now

* fixed: 0008 migration, bot models, patterns, handlers, keyboards

* fixed: bot handlers, keyboards

* fixed: parse_callback_data docstring

* added the ability to get coordinators contacts from db, 2 var, added null=True option to Coordinator model

* Некоторые константы поменяла на значения из БД. (#164)

* Некоторые константы поменяла на значения из БД.

* Правки по итогам 1-го ревью

* resolve merging conflict

* add custom handler for logs (#168)

* add custom handler for logs

* delete directory logs

* Feature/155 testing bot with pytest (#175)

* Добавлен пакет test в src

* Добавлен пакет unit в src/tests

* Добавлен пакет test_handlers в src/tests/unit

* Добавлены фикстуры

* Невалидные файлы удалены

* Добавлены тесты для хэндлера help

* Добавлены тесты для хэндлера receive_assistance

* Добавлены тесты для хэндлера select_assistance

* Добавлены тесты для хэндлера select_type_of_help

* Добавлены тесты для хэндлера start

* Добавлены правки в README

* Добавлен pytest.ini

* Добавлены команды для тестов в Makefile

* Обновлены зависимости в poetry

* Update codestyle_pep8.yml

Тесты переехали внутрь src (этого требует pytest-django)

* Перенес конфиги pytest в pyproject.toml

---------

Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com>

* Теститрую работу flake8 (#169)

* Теститрую работу flake8

* Теститрую работу flake8

* Теститрую работу flake8

* Теститрую работу flake8

* Теститрую работу flake8

* Теститрую работу flake8

* Тестирую проверку догстринг

* Теститрую работу flake8

* Теститрую работу flake8

* Убарала комментарии

---------

Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com>

* Утилита parse_callback_data перенесена в utils\callback_data_parse

* Добавлен новый State SHOW_PROGRAM

* Добавлен хэндлер show_contact в конфигурацию бота

* Добавлен хэндлер show_contact

* Добавлен конструктор build_show_fund_program_keyboard

* Переименован параметр

* 178 Move tests to separate action file (#183)

* Update codestyle_pep8.yml

Перенос тестирования в отдельный workflow

* Переименован

* Добавлено имя actions

* Удален параметр pytest.ini

* Добавлен файл запуска тестов

* Добавлены дополнительные переменные среды

* Тестовое значение для порта email

* Тесты обновлены

* Тесты обновлены

* Тесты обновлены

---------

Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com>

* make field region_key autogenerated (#182)

* make field region_key autogenerated

* delete #noqa

* add transliterate in prod dependencies

* Feature/add back buttons in question form (#170)

* add back_buttons

* delete my comments

* fix back_buttons

* fix back_button in state name

* Feature/155 testing bot with pytest (#186)

* Добавлен пакет test в src

* Добавлен пакет unit в src/tests

* Добавлен пакет test_handlers в src/tests/unit

* Добавлены фикстуры

* Невалидные файлы удалены

* Добавлены тесты для хэндлера help

* Добавлены тесты для хэндлера receive_assistance

* Добавлены тесты для хэндлера select_assistance

* Добавлены тесты для хэндлера select_type_of_help

* Добавлены тесты для хэндлера start

* Добавлены правки в README

* Добавлен pytest.ini

* Добавлены команды для тестов в Makefile

* Обновлены зависимости в poetry

* Update codestyle_pep8.yml

Тесты переехали внутрь src (этого требует pytest-django)

* Перенес конфиги pytest в pyproject.toml

* Обновлен Makefile-команды тестов

* Обновлены тесты

* Подправил code style

* Подправил code style

---------

Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com>

* added removing of unused docker imgs in workflow (#176)

* added removing of unused docker imgs in workflow

* fixed removing of unused docker in workflow

* fix2 removing unused docker things

* removed sudo

* finally fixed(I think) docker remove unused things

---------

Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* update configurations for stage

* change docker-compose.stage.yaml

* #158 fixed handlers, tweaked Makefile, add new constants

* #158 fixed select_assistance handler, added context.user_data[States.QUESTION_TYPE] = question_type

* prepared a deployment for production (#181)

* prepared a deployment for production

* Рефакторинг. build-and-push в одном файле для веток master и develop

* change action deploy bot on stage (#194)

* Bugfix/deploy stage action fix commands (#195)

* change action deploy bot on stage

* change action deploy add django superuser

* Bugfix/deploy stage action fix commands (#196)

* change action deploy bot on stage

* change action deploy add django superuser

* delete command createsuperuser

* Update codestyle_pep8.yml

Перенос тестирования в отдельный workflow

* Добавлена проверка уникальности поля title модели FundProgramFactory

* Добавлено ограничение на длину поля telegram_account

* Добавлены прогресс бары при заполнении БД

* Обновлены зависимости в poetry

* #174 Implemented the display of the question in the message when it i… (#191)

* #174 Implemented the display of the question in the message when it is selected

* #174 Implemented the display of the question in the message when it is selected

* #174 Implemented the display of the question in the message when it is selected

* #174 Implemented the display of the question in the message when it is selected

* Вместо одного слова генерируются 2 для поля title

* Обновлены зависимости poetry

* Update codestyle_pep8.yml

Перенос тестирования в отдельный workflow

* Адрес админки установлен в root

* Add the states to the debug logger

* Bugfux/debug_logger - add bot state.

* refactoring of states and name of functions

* Bugfix/209 return default path to admin configure nginx redirect (#210)

* Адрес админки установлен в admin/

* Настроен редирект на admin/

* Сокращен путь /django/

* Feature/rebuild migrations #180 (#198)

* rebuild migrations for apps: core, bot, users

* rebuild migrations for apps: core, bot, users. Add exclude to .pre-commit-config

* deleted exclude folders migrations from pre-commit-config

* Join migrations in bot_settins

* Joined all bot_ settings migrations in one file

* Feature/check django migrations (#207)

* added django migration check

* added django migration check

* fixed install dependencies

* fixed install dependencies

* fixed install dependencies_3

* testing again

* fixed env problems(i think)

* deleted seperate file for check, testing

* testing1

* testing2

* test

* test2

* test3

* test4

* test5

* test6

* added default value for email_port in settings.py

* test6

* test7

* changed to sqllite

* working?

* settings changes

* final fixes

* added check on pull req on develop and master

* fixed branches selection in workflow

* fixed branches selection again

* fixed problem i think

* fix tests

* Bugfix/209 return default path to admin configure nginx redirect (#214)

* Переименован путь админки в /bot_admin/

* Изменена конфигурация путей nginx

* Изменен путь приложения админ-панели

* Translation of dogstrings

* Переименован путь админки в /bot_admin/

* Изменен путь приложения админ-панели

* Изменен путь к приложению админ-панели

* Добавлен том logs, агрегирующий логи всех контейнеров

* Actions для prod и stage приведены к единому формату

* Кэширование клавиатур удалено

* rename states and functions

* Обновлены пути для папки логов

* Обновлены зависимости poetry

* update widget for Question/FundProgram -> Region

* refactor phone format (#217)

* refactor phone format

* delete phone_format constant

* new migration

* added BACK_TO_START button to the /help command (#229)

* added BACK_TO_START button to the /help command

* quick fix

* fixed test_help test

* fix again

* add method for display responses in admin panel (#222)

* add method for display responses in admin panel

* add display for fields in admin panel

* add chief coordinator point

* Feature/#232 add wysiwyg editor support to the following fields (#233)

* Test django-mdeditor

* added modified django-ckeditor

* fixed modified django-ckeditor, add static directory for correct emoji working

* fixed modified django-ckeditor, add new skin, reformat toolbar

* fixed modified django-ckeditor: reformat toolbar

* fixed modified django-ckeditor: new reformat toolbar

* added: ckeditor wysiwyg-editor, new migrations, show_objects.py; fixed: models, handler keyboards

* added: ckeditor wysiwyg-editor, new migrations, show_objects.py; fixed: models, handler keyboards

* fixed: bot factories, handle function of filldb command

* fixed: migrations, bot settings models

* Feature/#216 error handling (#228)

* Error handling when sending messages by the user

* Правки по итогам 1-го ревью

* Правки по итогам 2-го ревью

* delete compose names for the version 3.8 (#236)

* add chief coordinator and and add chief coordinator to text message in show_contact

* process message from users

* Feature/226 send link to set password to new admin (#234)

* Создан сигнал на отправку ссылки создания пароля новому админу

* Добавлен action на рассылку писем для сброса паролей у выбранных пользователей.

* Удалены ненужные поля в формах создания и изменения пользователей.

* Добавлены утилиты для создания писем с ссылками на сброс пароля.

* Добавлена view-функция для обработки запросов на сброс пароля.

* Добавлен путь для смены пароля.

* Добавлен тайм-аут действия ссылки сброса пароля.

* Добавлены настройки smtp-сервера.

* Добавлены утилиты для создания писем с ссылками на сброс пароля.

* Добавлен action на рассылку писем для сброса паролей у выбранных пользователей.

* Добавлена активация сигналов.

* При создании пользователя, ему гарантируется доступ к админ-панели через флаг is_staff.

* Изменены настройки по умолчанию для is_active и is_staff.

* Добавлена утилита для создания случайного пароля.

* Добавлены утилиты для создания писем с ссылками на сброс пароля.

* Добавлены шаблоны для писем.

* Добавлены шаблоны для формы сброса пароля.

* Создан сигнал на отправку ссылки создания пароля новому админу

* Добавлен action на рассылку писем для сброса паролей у выбранных пользователей.

* Удалены ненужные поля в формах создания и изменения пользователей.

* Добавлены утилиты для создания писем с ссылками на сброс пароля.

* Добавлена view-функция для обработки запросов на сброс пароля.

* Добавлен путь для смены пароля.

* Добавлен тайм-аут действия ссылки сброса пароля.

* Добавлены настройки smtp-сервера.

* Добавлены утилиты для создания писем с ссылками на сброс пароля.

* Добавлен action на рассылку писем для сброса паролей у выбранных пользователей.

* Добавлена активация сигналов.

* При создании пользователя, ему гарантируется доступ к админ-панели через флаг is_staff.

* Изменены настройки по умолчанию для is_active и is_staff.

* Добавлена утилита для создания случайного пароля.

* Добавлены утилиты для создания писем с ссылками на сброс пароля.

* Добавлены шаблоны для писем.

* Добавлены шаблоны для формы сброса пароля.

* Add the states to the debug logger

* Обновлены миграции

* Добавлены пользовательские фильтры.

* Исправлены настройки.

* Рефакторинг

* Удалены ненужные файлы.

* Новый пользователь получает доступ к админ-панели только после того, как установит новый пароль к личному кабинету.

* Удалена проверка условия is_staff.

* Удалены ненужные настройки.

* Миграции схлопнуты.

---------

Co-authored-by: Ольга Жолудева <joludeva.olga@yandex.ru>

* replace time to asyncio

* change admin bot settings (#239)

* change admin bot settings

* rename migration

* change titles for bot settings

* Внесла правки согласно ТЗ.

* Внесла правки согласно ТЗ.

* Внесла правки согласно ТЗ.

* Fixed a bug

* Revert "Внесла правки согласно ТЗ." (#251)

* realize service for prod and stage

* remove user_region and user_role from models and admin (#249)

* remove user_region and user_role from models and admin

* some changes and refactor

* admin botsettings refactor

---------

Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* change question type display in admin (#260)

* change question type display in admin

* some fix

---------

Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* fixed: settings, makefile (#250)

* fixed: settings, makefile

* fixed: settings

* moved: ckeditor_add-on directory; fixed: settings.py

* added: createsuperuser in Makefile

* fixed: settings.py

* fix staticdirs

* delete double DEBUG env

* delete old notations

---------

Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* fix workflow

* Add pagination for regions, fix back_button, add pagination-settings … (#237)

* Add pagination for regions, fix back_button, add pagination-settings for admin-page

* merging from develop, delete comment-string, rebuild migrations bot_settings

* Refactoring - returned States.REGION to class States

* realize service for prod and stage (#256)

* realize service for prod and stage

* fix workflow

* test fix (#263)

* Fix/deploy.service (#264)

* test fix

* test2

* Fix/deploy.service (#265)

* test fix

* test2

* test3

* Fix/deploy.service (#266)

* test fix

* test2

* test3

* test3fix

* removed unique=True in coordinator model for phone and telegram (#267)

* fix stage workflow

* Feature/realize service for stage and prod (#269)

* realize service for prod and stage

* fix workflow

* fix stage workflow

---------

Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com>

* fix stage workflow

* Update deploy-bot-on-stage.yml

* Update deploy-bot-on-stage.yml (#271)

* Исправлены названия.

* Feature/realize service for stage and prod (#274)

* fix stage workflow

* fix stage workflow

* Feature/realize service for stage and prod (#275)

* Feature/realize service for stage and prod (#276)

* Feature/realize service for stage and prod (#277)

* Feature/realize service for stage and prod (#278)

* fix stage workflow

* fix stage workflow

* fix stage workflow

* Fix stage workflow

* fix workflow

* fix stage workflow

* Feature/realize service for stage and prod (#279)

* fix stage workflow

* fix stage workflow

* fix stage workflow

* Fix stage workflow

* fix workflow

* fix stage workflow

* fix stage workflow

* Feature/realize service for stage and prod (#280)

* fix stage workflow

* fix stage workflow

* fix stage workflow

* Fix stage workflow

* fix workflow

* fix stage workflow

* fix stage workflow

* fix stage workflow

* fix stage workflow

* fix (#281)

* Fix/dev ci cd (#282)

* fix

* fix docker

* Feature/update password reset template (#261)

* Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users.

* Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users.

* Обновлены зависимости poetry.

* Добавлен кастомный шаблон входа в админ-панель.

* Добавлен кастомный шаблон письма с одноразовым кодом.

* Шаблоны разнесены по соответствующим директориям.

* Добавлены настройки для 2FA.

* Добавлено создание модели EmailDevice новых пользователей для рассылки OTP.

* Добавлен кастомный сайт админ-панели с 2FA.

* Заменен дефолтный сайт админ-панели на кастомизированный.

* Добавлена форма для 2FA.

* Удалены ненужные модели.

* Обновлены пути к шаблонам.

* Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users.

* Шаблоны перенесены в приложение users.

* Обновлены настройки для тестирования миграций.

* Обновлен шаблон письма, добавлен восклицательный знак.

* Изменена основа шаблона на встроенный base_site.html.

* Изменен стиль отображения ошибок формы.

* Настройки админ-панели перенесены из urls в sites.

* Ненужные шаблоны удалены.

* Исправлены названия.

---------

Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* Bugfix/change password set reset url (#285)

* Добавлен путь users.

* Изменен путь для шаблона email.

* Feature/225 create 2 fa for admin panel (#259)

* Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users.

* Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users.

* Обновлены зависимости poetry.

* Добавлен кастомный шаблон входа в админ-панель.

* Добавлен кастомный шаблон письма с одноразовым кодом.

* Шаблоны разнесены по соответствующим директориям.

* Добавлены настройки для 2FA.

* Добавлено создание модели EmailDevice новых пользователей для рассылки OTP.

* Добавлен кастомный сайт админ-панели с 2FA.

* Заменен дефолтный сайт админ-панели на кастомизированный.

* Добавлена форма для 2FA.

* Удалены ненужные модели.

* Обновлены пути к шаблонам.

* Утилиты для работы с рассылкой email и регистрацией пользователей перенесены в приложение users.

* Шаблоны перенесены в приложение users.

* Обновлены настройки для тестирования миграций.

* Add pagination for regions, fix back_button, add pagination-settings … (#237)

* Add pagination for regions, fix back_button, add pagination-settings for admin-page

* merging from develop, delete comment-string, rebuild migrations bot_settings

* Refactoring - returned States.REGION to class States

* realize service for prod and stage (#256)

* realize service for prod and stage

* fix workflow

* test fix (#263)

* Fix/deploy.service (#264)

* test fix

* test2

* Fix/deploy.service (#265)

* test fix

* test2

* test3

* Fix/deploy.service (#266)

* test fix

* test2

* test3

* test3fix

* removed unique=True in coordinator model for phone and telegram (#267)

* Feature/realize service for stage and prod (#269)

* realize service for prod and stage

* fix workflow

* fix stage workflow

---------

Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com>

* fix stage workflow

* Исправлены названия.

* Feature/realize service for stage and prod (#274)

* fix stage workflow

* fix stage workflow

* Feature/realize service for stage and prod (#275)

* Feature/realize service for stage and prod (#276)

* Обновлен шаблон письма, добавлен восклицательный знак.

* Изменена функция на проверку otp, отправка проводится автоматически.

* Изменен шаблон.

* realize service for prod and stage

* fix workflow

* Модель OTPDevice скрыта.

* добавлю один багфикс

---------

Co-authored-by: Антон Теряев <110157871+teryaev-anton@users.noreply.github.com>
Co-authored-by: Elena Shovtyuk <110084590+elenashovtyuk@users.noreply.github.com>
Co-authored-by: Konstantin Raikhert <69113745+KonstantinRaikhert@users.noreply.github.com>
Co-authored-by: bobr <99394921+bobr2072@users.noreply.github.com>
Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* Feature/realize service for stage and prod (#284)

* fix stage workflow

* fix stage workflow

* fix stage workflow

* Fix stage workflow

* fix workflow

* fix stage workflow

* fix stage workflow

* fix stage workflow

* fix stage workflow

* fix prod workflow

* fix nginx conf in docker-compose

* added message into email.html (#287)

* added message into email.html

* deleted comment-string in email.html, fixed back_to_start_button in get_user_question

* fix template

---------

Co-authored-by: Konstantin Raikhert <raikhert13@gmail.com>

* fixed: text display in handlers, back button to start (#283)

* fixed: text display in handlers, back button to start

* fixed: test_select_assistance.py; turned-off: test_select_type_of_help.py

* turned-off: test_select_assistance.py.py

* Bugfix/#268 settings in the admin panel changed the behavior of the bot (#288)

* fixed: text display in handlers, back button to start

* fixed: test_select_assistance.py; turned-off: test_select_type_of_help.py

* turned-off: test_select_assistance.py.py

* fix permissions

* fix permissions

---------

Co-authored-by: Vladimir Vasiliev <vladvasiliev52@gmail.com>

* collapse migrations (#289)

* fix workflow

---------

Co-authored-by: fr0stfree <me@frostfree.ru>
Co-authored-by: Danila Krasov <67839759+Fr0stFree@users.noreply.github.com>
Co-authored-by: Андрей Жирихин <zhirikhin.andrew@gmail.com>
Co-authored-by: Alexander Lonskiy <102410304+distemper17@users.noreply.github.com>
Co-authored-by: Alexander Lonskiy <alexanderlonskiy@MBP-Alexander.netis.cc>
Co-authored-by: Aleksei Koznov <102172028+alekseikoznov@users.noreply.github.com>
Co-authored-by: Zh-Andrew <100352694+Zh-Andrew@users.noreply.github.com>
Co-authored-by: Илья Шустров <shustrov.i@ya.ru>
Co-authored-by: Андрей <andrew@MacAndrew.local>
Co-authored-by: Илья Шустров <91760166+samebr0dy@users.noreply.github.com>
Co-authored-by: Aleksei Koznov <alekseikoznov@yandex.ru>
Co-authored-by: Михаил Касаткин <m.m.kasatkin@gmail.com>
Co-authored-by: Elena Shovtyuk <110084590+elenashovtyuk@users.noreply.github.com>
Co-authored-by: Vladimir <vladvasiliev52@gmail.com>
Co-authored-by: Mikhail Kasatkin <110116963+MikeWazowskyi@users.noreply.github.com>
Co-authored-by: Olga-Zholudeva <110151631+Olga-Zholudeva@users.noreply.github.com>
Co-authored-by: bobr <99394921+bobr2072@users.noreply.github.com>
Co-authored-by: Антон Теряев <110157871+teryaev-anton@users.noreply.github.com>
Co-authored-by: Михаил Касаткин <m.m.kasatkin@yandex.ru>
Co-authored-by: Ольга Жолудева <joludeva.olga@yandex.ru>
  • Loading branch information
21 people authored Sep 7, 2023
1 parent 8f926c4 commit 4ecc262
Show file tree
Hide file tree
Showing 208 changed files with 14,355 additions and 10 deletions.
1 change: 1 addition & 0 deletions .black
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
line-length = 79
33 changes: 33 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Конфигурация Telegram бота
TELEGRAM_TOKEN=YOUR_TELEGRAM_BOT_TOKEN
# Webhook
WEBHOOK_ENABLED=False
WEBHOOK_URL=NOT_SET
WEBHOOK_SECRET_KEY=STRONG_SECRET_KEY
# Persistence
REDIS=False
REDIS_HOST=172.17.0.1
REDIS_PORT=6379

# Конфигурация Django
DJANGO_SECRET_KEY=SOMETHING_REALLY_SECRET
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

# Конфигурация базы данных PostgreSQL
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=spread_wings
POSTGRES_USER=spread_wings_user
POSTGRES_PASSWORD=spread_wings_password

# Конфигурация почтового агента
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend # Отправка через почтового агента
EMAIL_HOST=smtp.yandex.ru
EMAIL_PORT=465
# реквизиты для аутентификации в почтовом сервисе
EMAIL_ACCOUNT=example@yandex.ru
EMAIL_PASSWORD=password
# в настройках аккаунта откуда отправляется письмо подключите протокол IMAP
# адрес по умолчанию для отправки вопросов от пользователей
DEFAULT_EMAIL_ADDRESS=NOT_SET
5 changes: 5 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[flake8]
ignore = E501, E265, F811, PT001, DJ05, D100, D105, D104, W504, W292, D106, D107, W503
max-line-length = 79
exclude =
*/migrations/
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Tasks
about: Create a task for this project
title: ''
labels: Feature
assignees: ''

---

**Why?**
Зачем выполняется реализация задачи и какую проблему она решает.

**How To Do?**
Как мы выполняем реализацию данной задачи, какие действия нужны для достижения цели.

**Where?**
Где делаем реализацию задачи, какие сервисы задействованы, ссылка на требования, сcылка на API, скриншоты.
54 changes: 54 additions & 0 deletions .github/workflows/build-and-push-image-to-github-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Create and publish a Docker image

on:
push:
branches:
- master
- develop

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image for Production
if: github.ref == 'refs/heads/master'
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
file: prod.Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

- name: Build and push Docker image for Stage
if: github.ref == 'refs/heads/develop'
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
70 changes: 70 additions & 0 deletions .github/workflows/check_django_migrations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Django migrations Check

on:
push:
branches:
- '**'
pull_request:
branches:
- master
- develop

jobs:
migration-check:
name: Check Migrations

runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11.4

- name: Install production branch dependencies
if: github.ref == 'refs/heads/master'
run: |
pip install -r requirements/production.txt
- name: Install dependencies
if: github.ref != 'refs/heads/master'
run: |
pip install -r requirements/develop.txt
- name: Run migrations check
run: |
cd src/
touch .env
echo TELEGRAM_TOKEN=${{ secrets.TELEGRAM_TOKEN }} >> .env
echo WEBHOOK_ENABLED=${{ secrets.WEBHOOK_ENABLED }} >> .env
echo WEBHOOK_URL=${{ secrets.WEBHOOK_URL }} >> .env
echo WEBHOOK_SECRET_KEY=${{ secrets.WEBHOOK_SECRET_KEY }} >> .env
echo REDIS_HOST=${{ secrets.REDIS_HOST }} >> .env
echo REDIS_PORT=${{ secrets.REDIS_PORT }} >> .env
echo REDIS=${{ secrets.REDIS }} >> .env
echo DJANGO_SECRET_KEY=${{ secrets.DJANGO_SECRET_KEY }} >> .env
echo DEBUG=False >> .env
echo ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }} >> .env
echo POSTGRES_HOST=${{ secrets.POSTGRES_HOST }} >> .env
echo POSTGRES_PORT=${{ secrets.POSTGRES_PORT }} >> .env
echo POSTGRES_DB=${{ secrets.POSTGRES_DB }} >> .env
echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env
echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
echo EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }} >> .env
echo DEFAULT_EMAIL_ADDRESS=${{ secrets.DEFAULT_EMAIL_ADDRESS }} >> .env
echo EMAIL_ACCOUNT=${{ secrets.EMAIL_ACCOUNT }} >> .env
echo EMAIL_HOST=${{ secrets.EMAIL_HOST }} >> .env
echo EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }} >> .env
echo EMAIL_PORT=${{ secrets.EMAIL_PORT }} >> .env
python manage.py makemigrations --settings=config.test_settings --check --dry-run
33 changes: 33 additions & 0 deletions .github/workflows/check_vulnerabilities.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Python safety check

on:
pull_request:
branches:
- develop
- master

env:
DEVELOP: requirements/develop.txt
PRODUCTION: requirements/production.txt
# https://github.com/aufdenpunkt/python-safety-check#env-variables
DEP_PATH: None

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out master
uses: actions/checkout@master

- name: Requiremets path to production branch
if: ${{ github.base_ref == 'master' }}
run: echo "DEP_PATH=$PRODUCTION" >> $GITHUB_ENV

- name: Requiremets path to develop branch
if: ${{ github.base_ref == 'develop' }}
run: echo "DEP_PATH=$DEVELOP" >> $GITHUB_ENV

- name: Security vulnerabilities scan
uses: aufdenpunkt/python-safety-check@master
with:
safety_args: '-i 39642'
30 changes: 30 additions & 0 deletions .github/workflows/codestyle_pep8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: App code style workflow

on: [push]

jobs:
tests:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./src
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.11

- name: Install dependencies
run: pip install -r ../requirements/develop.txt

- name: Isort
run: isort .

- name: Test with flake8
run: flake8

- name: Test with black
run: black .
84 changes: 84 additions & 0 deletions .github/workflows/deploy-bot-on-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Deploy bot on prod

on:
workflow_run:
workflows: [Create and publish a Docker image]
types: [completed]
branches: [master]

jobs:
on-success:
runs-on: ubuntu-latest
environment:
name: prod_deploy
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- uses: actions/checkout@v2
- name: Prepare infra/prod
run: |
mkdir ../build
cp -TR ./infra/prod ../build
tar -cvf deploy.tar ../build/
- name: copy infra/prod
uses: appleboy/scp-action@v0.1.4
with:
host: ${{ secrets.VM_HOST }}
username: ${{ secrets.VM_USER }}
password: ${{ secrets.VM_PASSWORD }}
source: "deploy.tar"
target: /home/deploy/spread_wings_bot/infra/prod/
- name: ssh pull and start
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.VM_HOST }}
username: ${{ secrets.VM_USER }}
password: ${{ secrets.VM_PASSWORD }}
script: |
cd /home/deploy/spread_wings_bot/infra/prod/
tar -xvf deploy.tar --strip-components 1
rm deploy.tar
rm .env
touch .env
echo NGINX_HOST=${{ secrets.NGINX_HOST }} >> .env
echo NGINX_PORT=${{ secrets.NGINX_PORT }} >> .env
echo TELEGRAM_TOKEN=${{ secrets.TELEGRAM_TOKEN }} >> .env
echo WEBHOOK_ENABLED=${{ secrets.WEBHOOK_ENABLED }} >> .env
echo WEBHOOK_URL=${{ secrets.WEBHOOK_URL }} >> .env
echo WEBHOOK_SECRET_KEY=${{ secrets.WEBHOOK_SECRET_KEY }} >> .env
echo REDIS_HOST=${{ secrets.REDIS_HOST }} >> .env
echo REDIS_PORT=${{ secrets.REDIS_PORT }} >> .env
echo REDIS=${{ secrets.REDIS }} >> .env
echo DJANGO_SECRET_KEY=${{ secrets.DJANGO_SECRET_KEY }} >> .env
echo DEBUG=False >> .env
echo ALLOWED_HOSTS=${{ secrets.ALLOWED_HOSTS }} >> .env
echo POSTGRES_HOST=${{ secrets.POSTGRES_HOST }} >> .env
echo POSTGRES_PORT=${{ secrets.POSTGRES_PORT }} >> .env
echo POSTGRES_DB=${{ secrets.POSTGRES_DB }} >> .env
echo POSTGRES_USER=${{ secrets.POSTGRES_USER }} >> .env
echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
echo EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }} >> .env
echo DEFAULT_EMAIL_ADDRESS=${{ secrets.DEFAULT_EMAIL_ADDRESS }} >> .env
echo EMAIL_ACCOUNT=${{ secrets.EMAIL_ACCOUNT }} >> .env
echo EMAIL_HOST=${{ secrets.EMAIL_HOST }} >> .env
echo EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }} >> .env
echo EMAIL_PORT=${{ secrets.EMAIL_PORT }} >> .env
# Cleaning unused containers, images, networks
docker system prune --force
# Installing defend service for app
sudo cp -f /home/deploy/spread_wings_bot/infra/prod/spread_wings_bot_prod.service /etc/systemd/system/spread_wings_bot_prod.service
sudo systemctl daemon-reload
sudo systemctl restart spread_wings_bot_prod.service
# Applying initialization commands
sleep 7
docker exec spread-wings-bot python manage.py migrate
docker exec spread-wings-bot python manage.py collectstatic --noinput
Loading

0 comments on commit 4ecc262

Please sign in to comment.