УДК 65.011.54

Автоматизация отчетности Confluence с помощью Python

Григорьева Анна Алексеевна – бакалавр Национального исследовательского университета «Высшая школа экономики».

Муклаев Сабур Мергенович – магистр Национального исследовательского университета «Высшая школа экономики».

Аннотация: При работе с Confluence самой распространенной задачей, требующей автоматизации, является необходимость регулярно автоматически обновлять данные. В статье описаны методы автоматического обновления содержимого страницы, чтения и дополнения содержимого страницы, добавления вложений. Предложены примеры реализации методов чтения, редактирования и добавления вложений. Статья предлагает практический взгляд на решение задачи автоматизации процессов с помощью Confluence. На каждом этапе описанного процесса автоматизации предложены рекомендации разработчику, которые были выработаны исходя из практики применения исследуемых методов.

Ключевые слова: автоматизация бизнес-процессов, Atlassian Confluence, Python, FastAPI, Atlassian Python API, Windows Task Scheduler.

Поддерживать актуальность наполнения страницы проекта на Confluence тем важнее, чем больше участников в проекте. Существует библиотека методов Python для работы с Confluence, позволяющих автоматизировать работу с содержимым страниц таким образом, чтобы решать широкий пласт регулярных задач, с которыми встречаются специалисты в самых разных отраслях, в короткие сроки.

Цель: определить подход к автоматизации отчетности Confluence с помощью Python.

Объект исследования: автоматизация корпоративных бизнес-процессов.

Предмет исследования: методы и средства автоматизации процессов обработки, анализа и визуализации данных с помощью Confluence и Python.

Методы исследования: анализ, синтез.

Часть сущности страницы Confluence, отвечающая за отображаемую приложением визуализацию, хранится в параметре body [1,2]. Эта часть представляет собой HTML разметку. С body можно ознакомиться в контекстном меню, в пункте “View Storage Format”. Суть обновления страницы Confluence так или иначе состоит в манипуляциях с body. В случаях работы со вложениями ссылка на них в body не меняется при обновлении версии вложения без изменения его имени.

Большую часть самых распространенных задач автоматизации можно решить за три шага:

  1. Чтение (если требуется интерактивное взаимодействие с содержимым);
  2. Запись обновленного body;
  3. Добавление вложений (если требуется обновление файлов или изображений).

Чтение содержимого страницы. Любая работа с сервисами Confluence помощью python начинается с объявления элемента аутентификации (Рис. 1).

1

Рисунок 1. Объявление элемента аутентификации.

Для идентификации страницы используется связка пространства (space) и id страницы (page_id). И то, и другое можно увидеть в явном виде в URL адресе страницы, открыв её в браузере. Если возникли сложности с определением имени пространства, можно воспользоваться функцией (Рис. 2).

2

Рисунок 2. Функция определения имени пространства.

Чтение body предлагается проводить напрямую вызовом get request (Рис. 3). Существует стандартная функция получения сущности страницы в python, однако велика вероятность обнаружить в ней только информацию о body, без самого содержимого.

3

Рисунок 3. Чтение body.

Далее следует парсинг содержимого body. Мы рекомендуем разработчику организовать размещение и редактирование пользователем интерактивной части информации на странице в таблицах и заранее [3,4]. В таком случае возможно получение всей необходимой информации функцией pandas.read_html. Положительные стороны такого подхода особенно проявляются при проведении множества проектов по автоматизации страниц Confluence параллельно, так как в противном случае придется реализовывать несколько уникальных парсеров, вместо одного унифицированного. Если размещение интерактивной части в табличном формате невозможно, то следует рассмотреть использование библиотеки bs4 (класс BeautifulSoup) или регулярные выражения (библиотека re).

Запись обновленного body. Опыт практического применения python для автоматизации Confluence показывает, что чаще всего используется один из двух подходов к редактированию body: заполнение body по шаблону и замена фрагментов по регулярным выражениям. Мы рекомендуем начать с заполнения по шаблону. Суть этого подхода заключается в создании текстового шаблона, с метками для функции python string.format. На рисунке 4 приводится пример отображаемого содержимого страницы. На рисунке 5 приводится сравнение body этой страницы(слева) и его шаблона(справа).

4

Рисунок 4. Пример отображаемого содержимого страницы.

5

Рисунок 5. Сравнение body страницы(слева) и его шаблона(справа).

Добавление вложений. В качестве вложений могут добавляться многие самые распространенные типы документов, а также изображения в разных форматах [5]. В частности, мы предлагаем разработчику формировать диаграммы, графики или иную инфографику в удобном формате изображений, и после создания шаблона страницы с указание ссылки на изображение обновлять вложение. На рисунке 6 приводится пример добавления всех файлов из каталога в качестве вложений.

6

Рисунок 6. Пример добавления всех файлов из каталога в качестве вложений.

Приведенные в этой статье методы автоматизации не заменят полноценного веб-сервиса, но помогут средствами доступными любому python разработчику в короткие сроки автоматизировать большой спектр задач от элементарных до весьма специфических.

Список литературы

  1. Confluence [Электронный ресурс] // Atlassian URL: https://www.atlassian.com/ru/software/confluence (дата обращения: 30.02.2023).
  2. Jira Software [Электронный ресурс] // Atlassian URL: https://www.atlassian.com/ru/software/jira (дата обращения: 30.02.2023).
  3. Atlassian Python API. Confluence module [Электронный ресурс] // URL: https://atlassian-python-api.readthedocs.io/confluence.html (дата обращения: 30.02.2023).
  4. Atlassian Python API wrapper [Электронный ресурс] // URL: https://github.com/atlassian-api/atlassian-python-api (дата обращения: 30.02.2023).
  5. Atlassian Confluence: расширяем на python [Электронный ресурс] // URL: https://habr.com/ru/companies/alfastrah/articles/460929 (дата обращения: 30.02.2023).

Интересная статья? Поделись ей с другими: