{"id":27132171,"url":"https://github.com/kreipikc/mattermost-botpoll","last_synced_at":"2026-05-07T19:14:04.021Z","repository":{"id":284735026,"uuid":"954194850","full_name":"kreipikc/mattermost-botpoll","owner":"kreipikc","description":"Бот для создания и управления голосованиями в Mattermost, разработанный на Golang с использованием Tarantool в качестве базы данных","archived":false,"fork":false,"pushed_at":"2025-05-21T11:44:13.000Z","size":140,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-29T17:54:41.041Z","etag":null,"topics":["docker-compose","golang","mattermost-bot","postgresql","tarantool"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kreipikc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-24T17:50:30.000Z","updated_at":"2025-05-21T11:44:16.000Z","dependencies_parsed_at":"2025-05-19T22:21:17.922Z","dependency_job_id":null,"html_url":"https://github.com/kreipikc/mattermost-botpoll","commit_stats":null,"previous_names":["kreipikc/mattermost-botpoll"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kreipikc/mattermost-botpoll","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreipikc%2Fmattermost-botpoll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreipikc%2Fmattermost-botpoll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreipikc%2Fmattermost-botpoll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreipikc%2Fmattermost-botpoll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kreipikc","download_url":"https://codeload.github.com/kreipikc/mattermost-botpoll/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreipikc%2Fmattermost-botpoll/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32752070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","golang","mattermost-bot","postgresql","tarantool"],"created_at":"2025-04-07T21:52:31.415Z","updated_at":"2026-05-07T19:14:04.004Z","avatar_url":"https://github.com/kreipikc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mattermost Bot-poll\n## Быстрый старт\n### 1. Клонируем репозиторий в удобное для вас место на устройстве:\n```\ngit clone https://github.com/kreipikc/mattermost-botpoll.git\n```\n### 2. Настраиваем переменные окружения:\n 1. Находим файл `.env.example` в корне проекта;\n 2. Создаем в этой же директории файл `.env`;\n 3. Вставляем все данные из `.env.example`;\n 4. При необходимости меняем данные.\n\nДальше настраиваем переменные окружения в самом боте.\n\nНаходим `/app/envs/.env.example`, проделываем те же шаги, что и с первым файлом окружения, но при изменении данных нужно учитывать:\n- *TARANTOOL_USER* и *TARANTOOL_PASSWORD* должны быть одинаковыми в обоих `.env` файлах;\n- Для запуска через docker (с настройками по умолчанию) не нужно менять ничего кроме *MATTERMOST_TOKEN* (токен бота из Mattermost).\n\n### 3. Запускаем все через `docker-compose`:\n```\ncd \u003cyour_path\u003e/mattermost-botpoll\ndocker-compose up --build -d\n```\n\n### 4. Все готово! Теперь можно протестировать бота в Mattermost по ссылке - http://localhost:8065/\nДля посмотра всех команд для работы с голосованиями напишите в чат: `!help`\n\n## Общая информация\nРабота была выполнена в соответствии с ТЗ.\n\nВсе команды бота:\n1. `!hello` - тестовая команда для проверки работы бота;\n2. `!help` - вывод всех команд для работы с голосованиями;\n3. `!poll \u003ctitle\u003e \u003cdescription\u003e \u003cdate_end\u003e \u003cvariants: obj1, obj2...\u003e` - создание голосования;\n4. `!info_poll \u003cid_poll\u003e` - вывод данных о голосовании;\n5. `!vote_poll \u003cid_poll\u003e \u003cvariant\u003e` - проголосовать за вариант;\n6. `!end_poll \u003cid_poll\u003e` - завершение голосования (только автор);\n7. `!delete_poll \u003cid_poll\u003e` - удаление голосования (только автор).\n\nВсе сервисы в `docker-compose`:\n- **postgres** - сервис с базой данных PostgresSQL для работы Mattermost;\n- **mattermost** - сервис с мессенджером Mattermost;\n- **tarantool** - сервис с базой данных Tarantool для хранения информации о голосованиях;\n- **bot** - сервис с ботом на Golang, обрабатывающий команды.\n\nСтруктура проекта:\n```\nmattermost-botpoll\n├── .dockerignore\n├── .env.example\n├── .gitignore\n├── README.md\n├── app                     // Директория с приложением\n│   ├── Dockerfile\n│   ├── bot                 // Модуль для работы бота\n│   │   ├── client.go       // Работа с клиентом бота в Mattermost (инициализация и т.д.)\n│   │   └── handle.go       // Обработка команд\n│   ├── cmd                 // Модуль с иcполняемым приложением\n│   │   └── main.go         // Точка входа приложения\n│   ├── commands            // Модуль с командами\n│   │   ├── hello.go         \n│   │   ├── help.go\n│   │   ├── ...\n│   │   └── pollVote.go\n│   ├── config               // Модуль с инициализацией конфига\n│   │   └── config.go\n│   ├── database             // Модуль для работы с базой данных\n│   │   └── tarantool.go     // Инициализация и функции для базы данных Tarantool\n│   ├── envs                 // Модуль с переменными окружения\n│   │   └── .env.example     // Шаблон для .env\n│   ├── go.mod\n│   ├── go.sum\n│   ├── models               // Модуль с моделями (структурами)\n│   │   ├── poll.go\n│   │   ├── post.go\n│   │   └── user.go\n│   └── utils                // Модуль для утилит\n│       ├── convertToInt.go\n│       └── response.go\n└── docker-compose.yml\n```\n\n## Возможные вопросы и ошибки\n### При первом запуске контейнер `bot` не запускается\nПример вывода ошибки: \n```\n2025-05-21 11:21:21 Ошибка получения пользователя: ошибка: 401, тело: {\"id\":\"api.context.session_expired.app_error\",\"message\":\"Invalid or expired session, please login again.\",\"detailed_error\":\"\",\"request_id\":\"39ff5448fbd38pr8npg5qsrejr\",\"status_code\":401}\n2025-05-21 14:21:21 exit status 1\n```\n\nДанная ошибка указывает на неудачную авторизацию бота в **Mattermost** чтобы её решить нужно:\n1. Проверить токен *MATTERMOST_TOKEN* в `/app/envs/.env`;\n2. Если он есть, то проверьте верность токена;\n3. Если токена нет, то нужно зарегистрироваться в мессенджере **Mattermost** и создать его в настройках профиля;\n4. Вставить токен в поле *MATTERMOST_TOKEN* в файле `/app/envs/.env`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkreipikc%2Fmattermost-botpoll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkreipikc%2Fmattermost-botpoll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkreipikc%2Fmattermost-botpoll/lists"}