Создаём Telegram-бота для напоминаний о дедлайнах в Jira
Если ты работаешь с проектами в Jira, то знаешь, как легко можно упустить важные дедлайны среди массы задач. Чтобы не держать всё в голове и всегда быть в курсе предстоящих сроков, можно настроить автоматические напоминания в Telegram. В этой статье мы разберём, как создать такого бота, который будет уведомлять тебя о приближающихся дедлайнах.
Шаг 1: Создание и настройка бота в Telegram
Для начала создадим бота в Telegram:
- Найди в Telegram бота @BotFather и отправь ему команду
/start
. - Для создания нового бота используй команду
/newbot
. - Следуй инструкциям: придумай имя и уникальный username для бота.
- После успешного создания ты получишь токен доступа. Сохрани его — он понадобится для подключения бота к скрипту.
Шаг 2: Подключение к Jira через API
Чтобы бот мог получать информацию о задачах, необходимо подключиться к API Jira:
- Перейди в настройки своей учетной записи Jira и создай API-токен. Для этого нужно зайти в токен-менеджер и нажать на кнопку Create API token.
- Сохрани сгенерированный токен. Он будет использоваться для аутентификации.
Шаг 3: Установка необходимых библиотек
Для работы с API Jira и Telegram нам понадобятся несколько Python-библиотек. Установим их через pip
:
pip install jira-python python-telegram-bot schedule
Эти библиотеки позволят подключаться к Jira, отправлять сообщения в Telegram и запускать наш скрипт по расписанию.
Шаг 4: Написание скрипта
Создадим скрипт, который будет проверять дедлайны в Jira и отправлять уведомления в Telegram. Вот полный код:
from jira import JIRA
from telegram import Bot
from datetime import datetime, timedelta
import schedule
import time
# Конфигурация
jira_server = 'https://your-jira-instance.atlassian.net' # URL твоей Jira
jira_user = 'your-email@example.com' # Твой email для входа в Jira
jira_token = 'your-jira-api-token' # API токен, который ты создал ранее
telegram_token = 'your-telegram-bot-token' # Токен твоего бота в Telegram
chat_id = 'your-chat-id' # ID чата, куда бот будет отправлять сообщения
# Подключение к Jira
jira = JIRA(server=jira_server, basic_auth=(jira_user, jira_token))
# Подключение к Telegram
bot = Bot(token=telegram_token)
def check_deadlines():
# Текущая дата и дата через 3 дня
now = datetime.now()
deadline_date = now + timedelta(days=3)
# Получение задач, у которых дедлайн через 3 дня
issues = jira.search_issues(f'duedate <= {deadline_date.strftime("%Y-%m-%d")} AND status != "Done"')
for issue in issues:
due_date = datetime.strptime(issue.fields.duedate, '%Y-%m-%d')
if now <= due_date < deadline_date:
# Отправка уведомления в Telegram
message = f"Задача {issue.key}: {issue.fields.summary} имеет дедлайн {issue.fields.duedate}"
bot.send_message(chat_id=chat_id, text=message)
# Запуск задачи по расписанию
schedule.every().day.at("09:00").do(check_deadlines)
# Бесконечный цикл для работы расписания
while True:
schedule.run_pending()
time.sleep(60)
Как работает этот скрипт?
- Скрипт подключается к твоему аккаунту Jira, используя токен и email.
- Подключается к Telegram-боту, используя его токен.
- Функция
check_deadlines()
проверяет задачи, у которых дедлайн наступает в ближайшие три дня. - Если такие задачи есть, отправляет уведомление в Telegram с ключом задачи, кратким описанием и датой дедлайна.
- Настроено расписание, чтобы проверка запускалась каждый день в 9:00 утра.
Шаг 5: Настройка расписания
Ты можешь изменить расписание по своему усмотрению. Например, если хочешь, чтобы напоминания приходили несколько раз в день, можно добавить несколько запусков функции check_deadlines()
:
schedule.every().day.at("09:00").do(check_deadlines)
schedule.every().day.at("12:00").do(check_deadlines)
schedule.every().day.at("18:00").do(check_deadlines)
Шаг 6: Запуск скрипта
Сохрани скрипт и запусти его на своём сервере или компьютере. Пока скрипт будет работать, ты будешь получать уведомления о всех приближающихся дедлайнах.
Если хочешь, чтобы скрипт работал постоянно, настрой его запуск через cron
или используй такие сервисы, как pm2
для его постоянной работы.
Заключение
Теперь ты всегда будешь в курсе всех приближающихся дедлайнов в своих проектах, и ни одна задача не останется без внимания. Создание такого бота — отличное решение для улучшения управления проектами и автоматизации рутины. Надеюсь, этот гайд был полезен, и теперь ты сможешь легко настроить своего Telegram-ассистента для Jira. Удачи!