Бот - для работы с репозиторием проекта в BitBucket. Приветствую любителей ботов :-) Позвольте представить вашему вниманию бота для работы с репозиторием проекта в BitBucket. Краткое описание моих скромных трудов. Схема: Пример сообщений в телеграм: Сразу оговорюсь, я являюсь автоматизатором на Java. Начинал изучение с Python, поэтому и бота написал на нем, так как моя работа происходит на Java, мне захотелось вспомнить Python), поддерживать и углублять свои знания этого языка. И вот мне пришла в голову идея создания бота. Который к слову на проекте используется в нашем командном телеграмм чате, состоящим из 9 человек. Я обдумал основные задачи для которых он был бы необходим, их три (по результатм опроса, позже, выяснилось этого достаточно, но можно расширять функционал по своему усмотрению и необходимости): Информировать о новых пулл-реквестах Напоминать о текущих, что бы их проверили и поставили апрув (подтверждение на мерж) Информировать о комментах в реквесте, если их более 1 Задачи исходили в первую очередь из потребностей проекта. У нас бывало по долгу не проверялись реквесты. Их либо забывали проверять, либо не знали что реквест создан (у нас есть информирование по реквестам через корпоративную почту, но там бывают задержки, да и не всегда она читается). Я понимаю, бота можно расширить до того, что он будет информировать о любых изменениях реквеста (аппрув, изменение названия, событие мержа реквеста), но тогда наш чат превратиться в чат бесконечного спама от бота, будет неудобно переписываться по рабочим вопросам между собой, поэтому я ограничился задачами, описанными, выше. Этого как оказалось вполне хватает, реквесты стали более быстро проверяться, комментироваться и отслеживаться, что не может не радовать). Да бот оказался весьма кстати и как мне кажется полезен. Прежде чем приступить к реализации бота, я разумееется поискал есть ли подобные боты, они были, но мне удалось найти только на GO и на Java примеры реализаций. Был, насколько я припоминаю, и на Python, но мне не подходила его реализация. Вообщем сделаю свой, решил я. Я хотел сделать его максимально понятным и удобным в использовании. Разумеется так как он работает с конфидециальным корпоративным ресурсом я не могу деплоить его в облаках или на сторонних серверах, он работает у меня локально, меня и всех это устраивает. Будьте осторожны, если захотите использовать этого бота, с вашими конфидециальными данными (конечно если таковые есть), используйте бота в защищенных корпоративных сетях либо локально. Я выбрал популярную библиотеку Aiogram для работы с телеграмм. Примеров ее использования достаточно много можно найти в совбодном доступе, роликов на ютубе достаточно. Работу с API BitBucket была использована библиотека Atlassian. Пример команды, можно подробнее посмотреть на GitHub: Она позволяет работать со всеми продуктами Atlassian (Confluense, ButBucket, Jira и т.д.). Достаточно понятная документация, которая описывает все методы, которые могут быть использованы с приммерами ответов. Так же я использовал SQLite3 базу (присутствует по умолчанию) для записи комментрариев по реквесту и последующего сравниния информации сохранненой в базе с новой (которая в реквесте). Последующий вывод, если есть изменения. Пример начала класса, для работы с базой SQLite3 , можно подробнее посмотреть на GitHub: Для отслеживания кол-ва реквестов, я записывал просто в (file.json) файл константу, которая сравнивалась с актуальным результатом кол-ва реквестов, если он был больше, значит создан новый реквест и выводил сообщение в телеграмм. Для доп.функции сделал вывод курса валют библиотекой Pycbrf ,  с помощью нее можно получить актуальные курсы валют на необходимые даты. Пример: Что бы использовать бота, предварительно, нужно его создать в телеграмме. Информации много, поэтому не буду рассказывать как это сделать.  Для работы бота в чате понадобиться chat_id, что бы его унать можно вывести его в консоль, отправив сообщение ботом в чат, привязав chat_id на вывод сообщения. Либо можно привязать вывод к выполнению команды в чат. Для работы бота в личке, он будет получать user_id из контекста. Поэтому заранее узнавать его не надо. Для того, чтобы запустить бота нужно предварительно указать в файле Utils.py следующие параметры: Токен созданного бота Адрес расположения проектов в BitBucket: "https://bitbucket.corporativ_adress.ru” Логин Пароль Имя проекта в BitBucket Название репозитория в проекте После запуска бота, нужно его добавить в чат, далее можно узнать chat_id, как я писал уже выше. В личке будет работать сразу. Милости прошу :-) Спасибо за внимание!!! Ссылка на GitHub Автоматизатор Java — веб, мобилки, api