Grimoire Lab — это набор инструментов с открытым исходным кодом, созданный на Python, Elasticsearch и Kibana. Он подключается к необработанным данным GitHub через Perceval, модуль, предназначенный для извлечения данных из репозиториев, связанных с разработкой программного обеспечения.
Perceval перенаправляет данные в другой инструмент для фильтрации, так называемую Sorting Hat, отвечающую за управление и объединение идентификаторов, которые соответствуют одному и тому же реальному человеку / коммитеру и потенциально происходят из разных источников, прежде чем окончательно сделать данные управляемыми и доступными через богатый пользовательский интерфейс Kibiter приборные панели. Kibiter, ответвление Kibana, — это то, что позволяет пользователю создавать и редактировать визуализации, а также выполнять запросы с помощью базовых API-интерфейсов REST Elasticsearch.
Обратите внимание на мелкий шрифт; Perceval специализируется на извлечении данных из репозиториев, связанных с разработкой программного обеспечения. Это означает, что он не ограничен только GitHub, но может подключаться к множеству разрозненных источников данных, способных размещать либо исходный код, либо обзоры кода, списки рассылки и форумы, встречи, билеты, проблемы, чаты, вы называете это. Конкретные примеры: Bugzilla, JIRA, Gerrit, mbox, pipermail, StackExchange и Discourse. Фактически производители Bitergia предлагают корпоративные пакеты для предприятий, которые хотят подключить свои источники данных для извлечения информации.
Когда Perceval применяется к GitHub, вы получаете мощную платформу аналитики сообщества с открытым исходным кодом, которая может ответить на множество запросов, связанных с сообществом открытого исходного кода; «Насколько большой? Сколько?», «Откуда? Организации? Пол?», «Сколько лет? Новые? Неактивные?», «Как быстро?». Другими словами, с помощью таких показателей, как эти и многие другие, Grimoire может предоставить указания и измерения успеха проекта.
В качестве доказательства концепции в репозитории Grimoire мы находим хороший пример использования Perceval для извлечения данных из проекта GitHub (репозиторий git и связанные с ним проблемы с GitHub), загрузки их в Elasticsearch и создания с его помощью панели управления на основе Kibana. Вы можете найти подробные инструкции по настройке здесь, но достаточно сказать, что процедуры в основном связаны с Python:
Сначала вы создаете и активируете virtualenv для Python:
$ virtualenv -p / usr / bin / python3 gitlab $ источник gitlab / bin / активировать
Затем установите необходимые зависимости:
(gitlab) $ pip install beautifulsoup4 (gitlab) $ pip install python-dateutil (gitlab) $ pip install requests (gitlab) $ pip install six
и так далее.
Чтобы сделать это еще проще, Bitergia настроила Cauldron, представляя Grimoire как услугу, чтобы вы могли контролировать свое репозиторий GitHub без необходимости ничего настраивать! Каждый пользователь GitHub может запросить до пяти панелей мониторинга, каждая из которых соответствует владельцу GitHub (пользователю или организации).
Например, давайте взглянем на панель управления проектами Eclipse Foundation, которая отслеживает списки рассылки фонда, а также его репозитории Git, Gerrit и Bugzilla.
На верхней панели Git мы можем сразу увидеть некоторую начальную статистику, например, с 2015 года было совершено 136 776 коммитов, и есть 2146 авторов (участников), из которых Томас Шиндл является самым плодовитым из них. Впоследствии, следуя за нодой Томаса Шиндла, мы узнаем, что он участвует в проектах technology.efxclipse и eclipse.platform.ui, и даже видим часы дня, в которые он совершает больше всего! Излишне говорить, что, следуя за узлом за узлом, мы углубляемся в изучение всех аспектов проекта.
Лучше всего и, как уже было сказано, Grimoire является открытым исходным кодом для ядра и сам доступен на GitHub. Поскольку это не отдельный продукт, а экосистема, состоящая из отдельных компонентов, каждый из них предоставляется под собственной лицензией. Perceval и Sorting Hat находятся под лицензией GNU General Public License (GPL) версии 3, а Kibiter — под лицензией Apache от Elasticsearch версии 2.0. так что вы можете использовать их в своих собственных настройках и приложениях.