Можно взять готовое, вроде интересное
https://hub.docker.com/r/upagge/gitlab-telegram-notify
Можно взять яндекс хостинг и поднять на serverless технологиях
https://cloud.yandex.ru/docs/tutorials/serverless/telegram-bot-serverless
Как получить chat_id и опционально thread_id, чтобы послать туда сообщение?
1) https://api.telegram.org/bot<YourBOTToken>/getUpdates
Не сработает, если уже где-то развернули бота с вебхуком, будет
{"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"}
2) в нужном чате копируем ссылку на сообщение, будет типа https://t.me/c/1234567890/4/5 - большое число (добавить минус в начало) это ид чата, второе - тред, третье - номер сообщения и нам не важно. Если тредов нет то среднего числа не будет.
3) всякие боты типа https://t.me/getmyid_bot - но там нужна всякая магия, треды оно не умеет итд.
Делаем тестовую отправку
curl -X POST -H "Content-Type: application/json" -d "{\"chat_id\": \"<YourGroupID>\", \"text\": \"===ТЕСТ===\"}" https://api.telegram.org/bot<YourBOTToken>/sendMessage
Если нужно в тред (топик) то после значения чата в chat_id добавляем
\"message_thread_id\": \"<THREAD>\",
И тут прикол: офдока содержит кривое поле top_msg_id, а message_thread_id там вообще нет:
https://core.telegram.org/method/messages.sendMessage
Вот с таким Г нам приходится работать, что гугл точнее чем офдока. Печалька.
ЗЫ оба поля проверены, первое не работает, второе работает...