Вернуться

Приложение для GitLab, показывающее репозитории и присылающее уведомления о сборках в Mattermost

07.11.2023

Наш python-разработчик Дмитрий разработал приложение, которое показывает разработчикам все репозитории на GitLab, где они состоят, и присылает красивые уведомления в Mattermost о статусе сборки проекта.

Проблема

После ухода Slack из России мы перешли на новый корпоративный мессенджер — Mattermost. Его интерфейсные возможности уступают предшественнику. 

Например, в Slack были удобные и красивые хуки о сборках проектов в GitLab, а в Mattermost уведомления приходят просто в виде текста, где вся информация в куче.

Решение

Мы решили развивать кастомную функциональность Mattermost, чтобы сделать его более удобным для внутренней команды. Начали с разработки приложения, которое показывает пользователю все репозитории на GitLab, где он состоит. 

Человек простым кликом выбирает из общего списка репозиториев те, хуки с которых хочет получать. Всё происходит в модальном окне без лишних действий в консоли на сервере. Далее приложение самостоятельно создаёт webhook в репозитории и формирует нужные настройки. 

Теперь каждый раз, когда срабатывает CI/CD (сборка проекта на сервере), в канал Mattermost, откуда вызвали приложение, приходят уведомления о статусе завершения сборки. 

Выглядит это так:

1. Возникла критическая ошибка и сборка не удалась

2. Сборка прошла успешно, но произошли ошибки у дополнительных настроенных проверок 

3. Сборка удалась, все проверки пройдены

Цвета уведомлений подсказывают статус сборки. Внутри есть ссылки, чтобы сразу перейти в GitLab и посмотреть, что пошло не так. 

Разработка

Мы работаем преимущественно на Django, но приложение сделано на асинхронном и более быстром фреймворке FastAPI. В качестве базы данных Дмитрий использовал PostgreSQL. Приложение работает исключительно на сервере Creonit. Оно интегрировано в наш Mattermost через API и обменивается данными с GitLab.

Другие наши статьи

Давайте обсудим ваш проект

Никита Храмов
Аккаунт-менеджер
Никита Храмов

Свяжусь с вами в течение дня, чтобы уточнить детали проекта и сориентировать по стоимости разработки. После этого обсудим цели проекта, требования к нему и начнём работу.

Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь с Правилами обработки и использования персональных данных

Звоните, пишите

Давайте обсудим ваш проект

Никита Храмов
Аккаунт-менеджер
Никита Храмов

Свяжусь с вами в течение дня, чтобы уточнить детали проекта и сориентировать по стоимости разработки. После этого обсудим цели проекта, требования к нему и начнём работу.

Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь с Правилами обработки и использования персональных данных
Блог