From 68fd0c496bf221657cbd3dc3a8ce7b642d13adb1 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sat, 28 Jan 2023 13:42:36 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 132 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 104 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 01cca07..e06955a 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,56 @@ # Уведомления GitLab в Telegram -Это приложение позволит вам получать уведомления о событиях из GitLab. +Этот проект позволяет оперативно получать и настраивать персональные уведомления о событиях из GitLab. -> Статья-документация: https://struchkov.dev/blog/gitlab-telegram-bot/ +> Статья о проекте: https://struchkov.dev/blog/gitlab-telegram-bot/ > -> Исходный код: https://github.com/uPagge/gitlab-notification +> ⚠️На данный момент вся разработка ведется в моем Gitea: https://git.struchkov.dev/Telegram-Bots/gitlab-notification +> GitHub остается для удобства пользователей проекта, чтобы иметь возможность давать обратную связь по багам и +> предложениям. +> +> ⚠️Идет активная подготовка к выпуску версии 2.0.0, в котором будут исправлены все существующие баги, а также добавлена +> поддержка уведомлений Issue. +> На данный момент лучше использовать тег develop, вместо latest. -## Возможности бота -1. Уведомление о новых MergeRequest -2. Уведомление о возникновении конфликта в MergeRequest -3. Уведомление о добавлении вас в новый проект -4. Уведомление о смене статуса вашего MergeRequest -5. Уведомление о комментариях, в которых вас упоминают в формате @nickname -6. Уведомит о новой задаче в вашем MR. -7. Уведомит о закрытии вашей задачи в чужом MR -8. Уведомление о Pipeline +## Основные возможности + +1. Уведомление о новых Merge Request. +2. Уведомление о возникновении конфликта в MergeRequest. +3. Уведомление о появлении нового проекта. +4. Уведомление о смене статуса вашего MergeRequest. +5. Уведомление о комментариях, в которых вас упоминают в формате @nickname. +6. Уведомит о новом комментарии-треде в вашем MR. +7. Уведомит о закрытии вашего треда в чужом MR. +8. Уведомление о результате сборки. ## Как запустить -1. Для начала нужно создать бота, который будет посылать вам уведомления в телеграмм. Делается это в [специальном боте](https://t.me/botfather) -2. После создания вы получите токен, сохраните его. Пример: 34534050345:FlfrleflerferfRE-ergerFLREF9ERF-NGjM -3. Теперь необходимо получить персональный токен в вашем gitlab. Достаточно токена на чтение. Сохраните его -4. Создайте базу данных gitlab_bot. **Обязательно именно такое название** -4. Можно приступать к запуску +1. Для начала нужно создать бота, который будет посылать вам уведомления. Делается это + в [специальном боте](https://t.me/botfather) +2. После создания вы получите токен, сохраните его. Пример: `34534050345:FlfrleflerferfRE-ergerFLREF9ERF-NGjM` +3. Теперь необходимо получить персональный токен в вашем gitlab. Достаточно токена на чтение. +4. Можно приступать к запуску используя один из способов ниже. + +### Переменные среды + +* `TELEGRAM_BOT_TOKEN` -- токен, который вы получили при создание бота. +* `TELEGRAM_BOT_USERNAME` -- название, которое вы дали боту. Пример my_gitlab_bot. +* `GITLAB_PERSONAL_TOKEN` -- ваш персональный токен из GitLab. +* `TELEGRAM_PERSON_ID` -- ваш id в телеграм, можно узнать у [этого бота](https://t.me/myidbot) +* `GITLAB_URL` -- можно указать https://gitlab.com или url на ваш локальный/корпоративный GitLab строго в таком + формате http://localhost:7990. +* `DATASOURCE_URL` -- ссылка на базу данных Postgres, в следующем формате: jdbc:postgresql://localhost:5432/gitlab_bot +* `DATASOURCE_USERNAME` -- пользовать базы данных +* `DATASOURCE_PASSWORD` -- пароль пользователя базы данных + +### Запуск + +Есть несколько способов запуска. Для удобства я собрал проект в Docker образ, а также подготовил Docker Compose. + +#### Docker + +Подойдет, если вы не хотите поднимать отдельный контейнер с базой данных -### Пример запуска ``` sudo docker run --name gitlab-notify \ --env TELEGRAM_BOT_TOKEN=value \ @@ -38,15 +64,65 @@ sudo docker run --name gitlab-notify \ --network="host" upagge/gitlab-telegram-notify:latest ``` -#### Переменные +#### Docker Compose -* `TELEGRAM_BOT_TOKEN` -- токен, который вы получили при создание бота. -* `TELEGRAM_BOT_USERNAME` -- название, которое вы дали боту. Пример my_bitbucket_bot -* `GITLAB_PERSONAL_TOKEN` -- токен, который вы получили в GitLab -* `TELEGRAM_PERSON_ID` -- ваш id в телеграм, можно узнать у [этого бота](https://t.me/myidbot) -* `GITLAB_URL` -- можно указать https://gitlab.com или url на ваш локальный GitLab строго в таком формате http://localhost:7990 -* `DATASOURCE_URL` -- ссылка на базу данных Postgres, в следующем формате: jdbc:postgresql://localhost:5432/gitlab_bot -* `DATASOURCE_USERNAME` -- пользовать бд -* `DATASOURCE_PASSWORD` -- пароль от бд +Самый простой способ запуска. -После этого необходимо отправить боту сообщение, чтобы пройти первичную настройку. +docker-compose.yml +```yaml +version: '3.8' + +services: + + gitlab-bot-database: + image: postgres:15.1-alpine + restart: always + hostname: gitlab-bot-database + container_name: gitlab-bot-database + networks: + gitlab-bot: + environment: + POSTGRES_DB: "gitlab_bot" + POSTGRES_USER: "postgres" + POSTGRES_PASSWORD: ${DATASOURCE_PASSWORD} + volumes: + - gitlab-bot-database:/var/lib/postgresql/data/ + + gitlab-bot: + image: upagge/gitlab-telegram-notify:latest + hostname: gitlab-bot + container_name: gitlab-bot + privileged: true + networks: + gitlab-bot: + depends_on: + - gitlab-bot-database + environment: + TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} + TELEGRAM_BOT_USERNAME: ${TELEGRAM_BOT_USERNAME} + GITLAB_PERSONAL_TOKEN: ${GITLAB_PERSONAL_TOKEN} + TELEGRAM_PERSON_ID: ${TELEGRAM_PERSON_ID} + GITLAB_URL: ${GITLAB_URL} + DATASOURCE_URL: "jdbc:postgresql://gitlab-bot-database:5432/gitlab_bot" + DATASOURCE_USERNAME: ${DATASOURCE_USERNAME} + DATASOURCE_PASSWORD: ${DATASOURCE_PASSWORD} + +volumes: + gitlab-bot-database: + +networks: + gitlab-bot: +``` + +.env +``` +TELEGRAM_BOT_TOKEN= +TELEGRAM_BOT_USERNAME= +GITLAB_PERSONAL_TOKEN= +TELEGRAM_PERSON_ID= +GITLAB_URL= +DATASOURCE_USERNAME= +DATASOURCE_PASSWORD= +``` + +После запуска необходимо отправить боту сообщение, чтобы пройти первичную настройку. From 28661d5a19b99e0c42e6efbe4fc3c1968fc513e5 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sat, 28 Jan 2023 13:49:46 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e06955a..7f84393 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ Этот проект позволяет оперативно получать и настраивать персональные уведомления о событиях из GitLab. > Статья о проекте: https://struchkov.dev/blog/gitlab-telegram-bot/ +> Канал в Telegram, в который публикуется информация о разработке: https://t.me/gitlab_notification > > ⚠️На данный момент вся разработка ведется в моем Gitea: https://git.struchkov.dev/Telegram-Bots/gitlab-notification > GitHub остается для удобства пользователей проекта, чтобы иметь возможность давать обратную связь по багам и From 6a1a69fa012e0e19f6943a1db47eeac67abe0f12 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sat, 28 Jan 2023 13:51:51 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f84393..eec2bd5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Этот проект позволяет оперативно получать и настраивать персональные уведомления о событиях из GitLab. -> Статья о проекте: https://struchkov.dev/blog/gitlab-telegram-bot/ +> Статья о проекте: https://struchkov.dev/blog/gitlab-telegram-bot/ > Канал в Telegram, в который публикуется информация о разработке: https://t.me/gitlab_notification > > ⚠️На данный момент вся разработка ведется в моем Gitea: https://git.struchkov.dev/Telegram-Bots/gitlab-notification From c13fe02b2d1fc531aca14bdb8f3f8a83e37db134 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sat, 28 Jan 2023 13:52:27 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eec2bd5..ba5b225 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ > Статья о проекте: https://struchkov.dev/blog/gitlab-telegram-bot/ > Канал в Telegram, в который публикуется информация о разработке: https://t.me/gitlab_notification -> + > ⚠️На данный момент вся разработка ведется в моем Gitea: https://git.struchkov.dev/Telegram-Bots/gitlab-notification > GitHub остается для удобства пользователей проекта, чтобы иметь возможность давать обратную связь по багам и > предложениям. -> + > ⚠️Идет активная подготовка к выпуску версии 2.0.0, в котором будут исправлены все существующие баги, а также добавлена > поддержка уведомлений Issue. > На данный момент лучше использовать тег develop, вместо latest.