HAL 9000
«I am putting myself to the fullest possible use…»
Ivan Elfimov, 2019-03-24, 1m (123 words)
Cервис на Go под кодовым названием HAL 9000. Идея сервиса - интегрироваться с несколькими рабочими инструментами: Slack, Gitlab, Redmine, Tower, Sentry, чтобы они начали взаимодействовать так, как они действительно должны - как одна большая удобная среда для разработки.
Стандартные интеграции и уведомления недостаточно конфигурируемы, не очень удобны и не вписываются в наш рабочий процесс.
Что умеет:
- очень много пишет в слак о всевозможных событиях гитлаба (пуши, MR, комменты, апрувы, статусы пайплайнов)
- обновляет таску в редмайне
- реагирует на изменения тасок в редмайне и может тегать MR в gitlab
- редиректит ссылки с названием ветки на MR
- строит таймлайн рализов со ссылками на ветки/MR/авторов/таски в redmine
Что использовал:
- gorilla (mux, обертка для логирования запросов)
- клиент slack
- logrus
Клиенты для gitlab, redmine, tower и sentry - самописные.