Time Spend Notifier
Эта утилита предназначена для подсчета отработанного времени каждого участника команды и
информирования об этом в канале команды в маттермосте.
Описание
Утилита работает следующим образом. В конфигурации задается команды и список участников.
При вызове утилиты без параметров расчет происходит на текущую дату.
По указанной дате утилита определяет тип дня (рабочий | сокращенный | выходной).
Далее по каждому пользователя утилита находит все задачи, в которых пользователь проводил списание времени.
Далее по всем задачам запрашиваются все записи и производится фильтрация по пользователю и дате, формируется список списаний.
По списку списаний производится расчет оставшегося времени к отработке за день для каждого пользователя.
По отчету формируется сообщение в канал команды с тегированием пользователей, которые не списали указанную дневную норму.
После того как отчет сформирован происходит отправка сообщения в канал команды в маттермосте.
Требования
- Развернутый сервис jira (не важно облачный или развернутая корпоративная версия) и токена доступа к сервису.
- Развернутый сервис Mattermost и токен доступа к нему.
- Наличие сетевого доступа к сервису isdayoff.ru (https, 443 порт).
Сборка
CGO_ENABLED=0 go build
Запуск
Ключи запуска
Для вывода справки используйте команду:
./ts-notifier -h
Файл конфигурации
По умолчанию сервис работает с файлом конфигурации с именем config.yml, расположенным в той же директории, отпуда производится запуск.
Если требуется изменить путь к конфигурационному файлу используйте аргумент -c <путь к конфигурационному файлу>
Сервис при запуске будет искать конфигурационный файл по пути /home/user/config.yml
.
Отчетный день
По умолчанию при запуске сервис определяет текущий день по системному времени машины, на которой он запущен.
Если требуется указать произвольный день используйте аргумент -d YYYY-MM-DD
Сервис при запуске выполнит подсчет списанного времени за дату 2023-09-01
.
Предварительная настройка
Перед запуском требуется произвести настройку. Скопируйте пример конфига из config/config-example.yml
в текущий каталог и заполните его.
- Укажите адрес и порт развернутого сервиса Jira в параметр
jira.url
.
- Укажите токен для аутентификации в параметр
jira.auth_token
.
- Укажите адрес и порт развернутого сервиса Mattermost в параметр
notifier.mattermost.url
.
- Укажите токен для аутентификации в параметр
notifier.mattermost.auth_token
.
- Сформируйте команду, обязательно укажите идентификатор канала, в который будет отправлено уведомление.
Все шаги выполнены, можете выполнить тестовый запуск.
Отладка
Для отладки работы утилиты можно заметить отправку уведомлений в маттермост выводом в stdout.
Для этого в конфигурационном файле в секции notifier.mattermost.url
укажите пустую строку.
Результат работы программы будет выведен в stdout терминала.
После успешной отладки не забудьте установить адрес и порт сервиса Mattermost в notifier.mattermost.url
.
Запросы на улучшение и сообщения об ошибках
Если у вас есть запросы на улучшение или вы обнаружили ошибку, создайте Issue на GitHub.
Лицензия