nixys / nxs-support-bot

Telegram bot for Redmine
Apache License 2.0
15 stars 2 forks source link

Не приходят ответы из Redmine в Telegram #2

Closed openncomp closed 11 months ago

openncomp commented 1 year ago

Попробовал создать задачу через бота, все нормально, задача создалась. Комментарии при ответе из бота добавляются в Redmine. Но при ответе в Redmine, комментарии не приходят в Telegram. Логи пустые.

openncomp commented 1 year ago

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

openncomp commented 1 year ago

Хотя нет. Создал второго пользователя, назначил ему задачу, отправляю комментарий от своей учетки через веб интерфейс, второму пользователю уведомление в телеграм не приходит. Также если добавить комментарий от второго пользователя через веб, то мне уведомления не приходят. Оба пользователя имеют полные права в проекте, также дал им права администратора в редмайн.

openncomp commented 1 year ago

Обновил nxs-chat-redmine до актуальной версии, это не изменило ситуации.

openncomp commented 1 year ago

Также не приходят уведомления о создании новой задачи, когда пользователь2 создает задачу через бота и она автоматически назначается пользователю1

openncomp commented 1 year ago

Интересно, может ли быть проблема в самом телеграме? откатил ВМ с Редмайн на состояние до всех манипуляций с миграцией, также запустил ВМ со старым ботом nxs-chat-srv. В общем, воссоздал картину на момент, когда все работало. Самого бота в телеграме перезапустил, но теперь он не реагирует на сообщения совсем ) В логах docker logs nxs-chat-srv нет вообще никакой реакции, когда я пишу боту в телеграм.

Но если пользователь2 создает задачу, назначенную пользователю1 (мне), то мне в телеграм приходит уведомление (через nxs-chat-srv), также мне в бота приходит уведомление, если пользователь2 оставляет комментарии к задаче.

openncomp commented 1 year ago

Так, я кажется понял, почему перестал работать nxs-chat-srv после запуска nxs-support-bot. В старой версии бота выполнялось по инструкции: _nxs-chat-srv -i set_webhook_ В новой версии бота, он по-умолчанию очищает настройку вебхуков в телеграм боте, поэтому после возврата к старому боту необходимо снова выполнить инструкцию по установке вебхуков, иначе из телеграма сообщения не попадают в редмайн.

Я снова вернулся к проблеме, что новый nxs-support-bot не отправляет в телеграм комментарии, сделанные в веб интерфейсе Redmine.

Я могу предположить, что это может быть как-то связано с тем, что основной домен моего редмайна, допустим это example.com, отличается от домена для вебхуков, указанного в плагине nxs-chat-redmine и в конфиге nxs-chat-srv.conf: https://webhook.example.com:8443/redmine?token=TOKEN

В старом боте была отдельная настройка _"webhook_host" в секции конфига "telegram"_. В новой версии я не нашел такой настройки, правильно ли я понимаю, что теперь нельзя отдельно указать домен для вебхуков, отличный от основного домена Redmine?

Если это так, я попробую перенести вебхуки на основной домен и снова вернуться к тестам бота.

AndreiMuvila commented 1 year ago

Здравствуйте.

В новой версии я не нашел такой настройки, правильно ли я понимаю, что теперь нельзя отдельно указать домен для вебхуков, отличный от основного домена Redmine?

В разделе API settings можно настроить адрес и порт, где бот будет слушать. После этого вывесить порт наружу и ходить по домену или IP сервера с ботом.

openncomp commented 1 year ago

В разделе API settings можно настроить адрес и порт, где бот будет слушать. После этого вывесить порт наружу и ходить по домену или IP сервера с ботом.

Где искать эту настройку?

AndreiMuvila commented 1 year ago

Где искать эту настройку?

В файле /nxs-support-bot.conf.

openncomp commented 1 year ago

В файле /nxs-support-bot.conf

Рекурсивный поиск по /var/lib/docker/overlay2 результатов не дал. Попытка docker exec -it supportbot /bin/bash как и docker exec supportbot cat /nxs-support-bot.conf завершается ошибкой. Где найти этот файл настроек?

openncomp commented 1 year ago

Наверное, я чего-то не понимаю, но я обыскал сейчас почти всю систему, и никак не могу понять, где находится nxs-support-bot.conf

AndreiMuvila commented 1 year ago

Наверное, я чего-то не понимаю, но я обыскал сейчас почти всю систему, и никак не могу понять, где находится nxs-support-bot.conf

Похоже что я пустил вас по неправильному пути, прошу прощения((

Разобрался как в вашем случае правильно указать требуемые параметры. Насколько понимаю, вы запускаете бота через docker-compose, соответственно править нужно файл по пути .deploy/docker-compose/app.conf. Добавьте туда требуемые параметры и перезапустите контейнер.

komaxvl commented 1 year ago

ЯЧ столкнулся с той же проблемой , что новый nxs-support-bot не отправляет в телеграм комментарии, сделанные в веб интерфейсе Redmine. Как решили проблему Вы подскажите? Set URL for notifications. This URL is used by plugin to send issue updates to the Bot. Use a secretToken value from API settings to compose an URL. An URL format you need to use is following: {PROTO}://{DOMAIN}/v1/redmine?token={SECRET_TOKEN}. Адрес в плагине Я правильно понимаю в формате ? https://example.com/v1/redmine?roken=secret_token ?

Какие дополнительные изменения нужно внести? Докер бота и докер redmine запущены на одном сервере

borisershov commented 1 year ago

Приветствую! В понедельник Андрей посмотрит ваш вопрос и поможет решить проблему

AndreiMuvila commented 1 year ago

Здравствуйте.

Да, ссылка вида https://example.com/v1/redmine?token=secret_token.

Вероятно не проходят запросы. Проверьте, пожалуйста, доступность контейнеров друг для друга.

В комментарии указано /redmine?roken=secret_token, нет ли опечатки в настройках плагина redmine?

komaxvl commented 1 year ago

Здравствуйте.

Да, ссылка вида https://example.com/v1/redmine?token=secret_token.

Вероятно не проходят запросы. Проверьте, пожалуйста, доступность контейнеров друг для друга.

В комментарии указано /redmine?roken=secret_token, нет ли опечатки в настройках плагина redmine?

касательно В комментарии указано /redmine?roken=secret_token, нет ли опечатки в настройках плагина redmine? это опечатка. В настройках плагина все правильно.

Вывод docker ps

/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose#` docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS                   PORTS                                                                      NAMES
5c74f610656e   nixyslab/nxs-support-bot:latest   "/app -c /app.conf"      7 minutes ago   Up 6 minutes             0.0.0.0:8080->80/tcp, :::8080->80/tcp                                      supportbot
1b07dac69ad6   percona:8                         "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes (healthy)   3306/tcp, 33060/tcp                                                        mysql-testbot
33ae626924ac   bitnami/redis:latest              "/opt/bitnami/script…"   7 minutes ago   Up 7 minutes             6379/tcp                                                                   redis
91986506a512   redmine:4.2.10                    "/sbin/entrypoint.sh…"   32 hours ago    Up 32 hours (healthy)    0/tcp, 80/tcp, 443/tcp                                                     redmine
85261dd938ce   mysql:5.7.22                      "docker-entrypoint.s…"   32 hours ago    Up 32 hours              3306/tcp                                                                   mysql
8a17b173e143   memcached:1.5.6                   "docker-entrypoint.s…"   32 hours ago    Up 32 hours              11211/tcp                                                                  memcached
6fc821c2dddc   nginx:1.22.0                      "nginx -g 'daemon of…"   32 hours ago    Up 32 hours (healthy)    0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx-proxy

Однако ситуация не меняется по прежнему все измeнения внесенные в web интерфейсе Redmine по соответствующему тикету не обновляются в telegram. Какие настройки стоит проверить, какие дополнительные проверки выполнить? заранее спасибо

AndreiMuvila commented 1 year ago

То есть, все стартует без ошибок...

Из контейнера бота, по указанному в плагине URL, какой код ответа возвращается, если его curl запросить?

Есть ли что то в логах бота и редмайна?

komaxvl commented 1 year ago

То есть, все стартует без ошибок...

Из контейнера бота, по указанному в плагине URL, какой код ответа возвращается, если его curl запросить? при попытке выполнить docker exec -it supportbot /bin/bash получаю ошибку root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# docker exec -it supportbot /bin/bash OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown Как следствие не могу проверить вывод curl Есть ли что то в логах бота и редмайна? supportbot root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# docker logs supportbot {"level":"info","msg":"program started","time":"2023-11-13T09:21:28Z"}

redmine

root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# docker logs redmine
Initializing logdir...
Initializing datadir...
Symlinking dotfiles...
Installing configuration templates...
Configuring redmine...
Configuring redmine::database
Configuring redmine::memcached...
Configuring redmine::unicorn...
Configuring redmine::secret_token...
Generating a session token...
Note:
  All old sessions will become invalid.
  Please specify the REDMINE_SECRET_TOKEN parameter for persistence.
  **SHOULD** be defined if you have a load-balancing Redmine cluster.
Configuring redmine::max_concurrent_ajax_uploads...
Configuring redmine::sudo_mode...
Configuring redmine::autologin_cookie...
Configuring redmine::backups...
Configuring redmine::rmagic::font...
Configuring nginx...
Configuring nginx::redmine...
Installing plugins...
Installing gems required by plugins...
You are replacing the current local value of without, which is currently "development:test"
Migrating plugins. Please be patient, this could take a while...
DEPRECATION: :dalli_store will be removed in Dalli 3.0.
Please use Rails' official :mem_cache_store instead.
https://guides.rubyonrails.org/caching_with_rails.html
== 1 AddAutowatchInvolvedIssueToUser: migrating ===============================
-- add_column(:user_preferences, :autowatch_involved_issue, :boolean, {:default=>true, :null=>false})
   -> 0.5997s
== 1 AddAutowatchInvolvedIssueToUser: migrated (0.5997s) ======================

== 2 AddHideToRoles: migrating ================================================
-- add_column(:roles, :hide, :boolean, {:default=>false, :null=>false})
   -> 0.5015s
== 2 AddHideToRoles: migrated (0.5015s) =======================================

== 3 CreateDashboards: migrating ==============================================
-- create_table(:dashboards)
   -> 0.3597s
== 3 CreateDashboards: migrated (0.3598s) =====================================

== 4 CreateDashboardRoles: migrating ==========================================
-- create_table(:dashboard_roles)
   -> 0.3586s
== 4 CreateDashboardRoles: migrated (0.3587s) =================================

== 5 CreateDashboardDefaults: migrating =======================================
Creating welcome default dashboard
Creating project default dashboard
== 5 CreateDashboardDefaults: migrated (0.2091s) ==============================

== 6 AddNewTicketMessageToProjects: migrating =================================
-- change_table(:projects, {:bulk=>true})
   -> 0.7095s
== 6 AddNewTicketMessageToProjects: migrated (0.7096s) ========================

Installing themes...
2023-11-12 03:09:15,076 INFO Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
2023-11-12 03:09:15,076 INFO Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
2023-11-12 03:09:15,076 INFO Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
2023-11-12 03:09:15,076 INFO Set uid to user 0 succeeded
2023-11-12 03:09:15,080 INFO RPC interface 'supervisor' initialized
2023-11-12 03:09:15,080 INFO supervisord started with pid 1
2023-11-12 03:09:16,082 INFO spawned: 'unicorn' with pid 279
2023-11-12 03:09:16,083 INFO spawned: 'cron' with pid 280
2023-11-12 03:09:16,085 INFO spawned: 'nginx' with pid 281
2023-11-12 03:09:17,520 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-11-12 03:09:17,520 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-11-12 03:09:17,520 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)`
komaxvl commented 1 year ago

есть ли какая то другая информация которую мне нужно проверить ? Настройки docker-deploy бота?

AndreiMuvila commented 1 year ago

Из контейнера бота, по указанному в плагине URL, какой код ответа возвращается, если его curl запросить? при попытке выполнить docker exec -it supportbot /bin/bash получаю ошибку root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# docker exec -it supportbot /bin/bash OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown Как следствие не могу проверить вывод curl

В контейнере /bin/sh должен быть, если я правильно помню.

По поводу домена, можете отправить то что задано в плагине? Токен не нужен, только часть https://example.com/v1/redmine?token=.

komaxvl commented 1 year ago

Из контейнера бота, по указанному в плагине URL, какой код ответа возвращается, если его curl запросить? при попытке выполнить docker exec -it supportbot /bin/bash получаю ошибку root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# docker exec -it supportbot /bin/bash OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown Как следствие не могу проверить вывод curl

В контейнере /bin/sh должен быть, если я правильно помню. Увы но root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# docker exec -it supportbot /bin/sh OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown По поводу домена, можете отправить то что задано в плагине? Токен не нужен, только часть https://example.com/v1/redmine?token=.

https://redmine10.inango.com/v1/redmine?token=

komaxvl commented 1 year ago

В контейнере /bin/sh должен быть, если я правильно помню. Может есть еще варианты?

AndreiMuvila commented 1 year ago

https://redmine10.inango.com/v1/redmine?token=

Добавьте порт 8080 в URL, на котором находится контейнер с ботом. Тогда должно все заработать.

Так же у вас редмайн и бот на одном хосте, можно переключиться на http и выключить SSL в плагине.

komaxvl commented 1 year ago

https://redmine10.inango.com/v1/redmine?token=

Добавьте порт 8080 в URL, на котором находится контейнер с ботом. Тогда должно все заработать.

Так же у вас редмайн и бот на одном хосте, можно переключиться на http и выключить SSL в плагине.

порт добавил но увы по прежнему не работает обратная связь при обновлении статуса задачи через веб

AndreiMuvila commented 1 year ago

порт добавил но увы по прежнему не работает обратная связь при обновлении статуса задачи через веб

Из контейнера редмайна, с хоста доступен этот адрес? Какой код возвращает?

komaxvl commented 1 year ago

Из контейнера

root@28632751616e:/home/redmine/redmine# curl -I https://redmine10.inango.com:8080/v1/redmine?token=

curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

С хоста root@wkv-014:/var/lib/docker/volumes/redmine_data/_data/plugins/nxs-support-bot/.deploy/docker-compose# curl -I https://redmine10.inango.com:8080/v1/redmine?token= curl: (35) error:0A00010B:SSL routines::wrong version number

komaxvl commented 12 months ago

Есть какие то настройки дополнительные изменения/настройки которые мне необходимо произвести/проверить ? Спасибо

komaxvl commented 12 months ago

У Вас есть для меня еще какие нибудь советы предложения которыми Я могу воспользоваться и все же получить работоспособное решение. Заранее спасибо

AndreiMuvila commented 12 months ago

Redmine не может доступ к серверной части бота получить, чтобы послать ему изменения по задачам, которые рассылаются пользователям бота. Что в данном случае могу предложить...

  1. Отключите в настройках плагина Redmine доступ по SSL флагом Disable SSL verification.
  2. Задайте другой URL для доступа по HTTP. Что то вроде такого http://<IP_to_docker_host_machine>:8080/v1/redmine?token=<Secret_token> либо http://<BOT_CONTAINER_IP>:80/v1/redmine?token=<Secret_token>
komaxvl commented 12 months ago

Redmine не может доступ к серверной части бота получить, чтобы послать ему изменения по задачам, которые рассылаются пользователям бота. Что в данном случае могу предложить...

  1. Отключите в настройках плагина Redmine доступ по SSL флагом Disable SSL verification.
  2. Задайте другой URL для доступа по HTTP. Что то вроде такого http://<IP_to_docker_host_machine>:8080/v1/redmine?token=<Secret_token> либо http://<BOT_CONTAINER_IP>:80/v1/redmine?token=<Secret_token>

Благодарю, связность настроить удалось. Следующий вопрос подскажите в созданном мною telegram bot сейчас три команды /issue create /settings /help . Как переключаться между отдельными проектами? Есть ли возможность выбора issue ? как реализована работа с ботом для нескольких человек в рамках одного issue.

AndreiMuvila commented 11 months ago

Как переключаться между отдельными проектами?

Если вы создаете задачу через бота, вам будет выведено меню, в котором можно выбрать проект и приоритет задачи.

Есть ли возможность выбора issue?

Если вы отвечаете в задачу через бота, то вам нужно выбрать уведомление о комментарии по задаче и отправить ответное сообщение на него.

Как реализована работа с ботом для нескольких человек в рамках одного issue.

Участники могут отвечать на комментарии через бота в задачу и получать уведомления об изменениях.

AndreiMuvila commented 11 months ago

Так как дополнительных вопросов не поступало, мы закрываем данную задачу.