Обновил README.md

This commit is contained in:
Struchkov Mark 2023-01-28 13:42:36 +03:00
parent c798343973
commit 68fd0c496b
Signed by: upagge
GPG Key ID: D3018BE7BA428CA6

132
README.md
View File

@ -1,30 +1,56 @@
# Уведомления GitLab в Telegram # Уведомления 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 1. Уведомление о новых Merge Request.
3. Уведомление о добавлении вас в новый проект 2. Уведомление о возникновении конфликта в MergeRequest.
4. Уведомление о смене статуса вашего MergeRequest 3. Уведомление о появлении нового проекта.
5. Уведомление о комментариях, в которых вас упоминают в формате @nickname 4. Уведомление о смене статуса вашего MergeRequest.
6. Уведомит о новой задаче в вашем MR. 5. Уведомление о комментариях, в которых вас упоминают в формате @nickname.
7. Уведомит о закрытии вашей задачи в чужом MR 6. Уведомит о новом комментарии-треде в вашем MR.
8. Уведомление о Pipeline 7. Уведомит о закрытии вашего треда в чужом MR.
8. Уведомление о результате сборки.
## Как запустить ## Как запустить
1. Для начала нужно создать бота, который будет посылать вам уведомления в телеграмм. Делается это в [специальном боте](https://t.me/botfather) 1. Для начала нужно создать бота, который будет посылать вам уведомления. Делается это
2. После создания вы получите токен, сохраните его. Пример: 34534050345:FlfrleflerferfRE-ergerFLREF9ERF-NGjM в [специальном боте](https://t.me/botfather)
3. Теперь необходимо получить персональный токен в вашем gitlab. Достаточно токена на чтение. Сохраните его 2. После создания вы получите токен, сохраните его. Пример: `34534050345:FlfrleflerferfRE-ergerFLREF9ERF-NGjM`
4. Создайте базу данных gitlab_bot. **Обязательно именно такое название** 3. Теперь необходимо получить персональный токен в вашем gitlab. Достаточно токена на чтение.
4. Можно приступать к запуску 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 \ sudo docker run --name gitlab-notify \
--env TELEGRAM_BOT_TOKEN=value \ --env TELEGRAM_BOT_TOKEN=value \
@ -38,15 +64,65 @@ sudo docker run --name gitlab-notify \
--network="host" upagge/gitlab-telegram-notify:latest --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=
```
После запуска необходимо отправить боту сообщение, чтобы пройти первичную настройку.