Отчет по коммитам гитлаба на СКД

18.08.23

Разработка - DevOps и автоматизация разработки

Отчёт по коммитам гитлаба на СКД.

Всем привет.

У нас в департаменте 1С ведется разработка множества проектов. Куча репозиториев, хранилищ, разработчиков, архитекторов. Каждый день вносятся десятки изменений в разные учетные системы компании.

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

Такую же информацию из каждого хранилища конфигурации получить, в принципе, можно, но тоже не особо удобно. Тем более не всегда разработка ведется вообще с использованием хранилища.

А если у вас, как, например, у нас на проекте, 5 репозиториев и надо бы свести информацию об изменениях всех этих репозиториев в одном месте. Или вообще вспомнить, когда и куда вы что-то коммитили за прошлую неделю, чтобы заполнить отчет о трудозатратах?

А как понять, кто из разработчиков регулярно ведет активную разработку, а кто немного нет? Можно, конечно, использовать всякие сомнительные способы вроде записи экрана разработчика и удары тока при бездействии мышки, но это совсем не наш метод.

С другой стороны, мы же давно работаем в 1С и у нас есть удобная система компоновки данных прямо в любой 1С-ной базе и было бы здорово получить информацию о коммитах именно там. Еще бы и в режиме реального времени.

Например, такую информацию:

Да, это отчет в нашей общей базе. И это статистика по коммитам по всему департаменту 1С с фильтром по дате, ветке, команде разработки, разработчику и чему угодно, у нас же тут СКД, и каждый сам решает, какие именно данные ему полезны.

Или, например, такую информацию:

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

Еще лучше, если бы нам на почту регулярно приходил такой отчет, чтобы не формировать его каждый раз вручную. Например, такой:

Или такой:

Сразу видно кто и как лично поработал на прошлой неделе, и какой вклад каждый внес в выпуск очередного релиза нашей системы. Есть что обсудить на ретроспективе, как говорится. И кому выдать почетный вымпел передовика производства.

Так родилась идея этой публикации, а заодно и новая версия расширения Ssl-ci под кодовым номером 1.0.3

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

Если пересказать идею вкратце, то мы у себя разработали расширение для работы с апи гитлаба для синхронизации справочника дополнительных отчетов и обработок и репозитория, где ведется их разработка. Обновление всех или не всех доп. отчетов и обработок по одной кнопке, откат изменений на любой коммит, автодобавление всех новых отчетов и обработок в ci-контуре для запуска тестов и многое другое. Но это все было еще и в версии 1.0.2.

Апи гитлаба позволяет делать много других вещей, поэтому к версии 1.0.3 по сути расширение предоставляет нашу реализацию работы с этим апи на 1С.

Давайте покажу, что получилось из этой идеи. И как можно запустить такой отчет по коммитам на любом проекте, даже если вы совсем не используете функционал дополнительных отчетов и обработок.

Например для департамента 1С у нас это расширение загружено и настроено в нашей общей СППР, где никаких дополнительных отчетов и обработок нет (не включены).

Все скриншоты ниже выполнены на демо-базе БСП для чистоты эксперимента. Расширение поддерживает работу на версиях БСП 3.0.* и 3.1.*

Остальные версии не добавляли, оставили задел для контрибьютеров.

Важное дополнение. Мы у себя используем в качестве таск-трекера jira, поэтому текущая версия расширения поддерживает только интеграцию с этим таск-трекером. Но вы всегда можете либо добавить поддержку вашей версии либо вообще не использовать настройки таск-трекера, работать будет и без него (теоретически).

 

Новое в релизе 1.0.3

Добавили подсистему “Интеграция с гитом” в командный интерфейс. Подсистема доступна только для полноправных пользователей.

 

Настройки интеграции переехали в эту подсистему. Раньше для доступа к этим настройкам нужно было открывать список элементов справочника “Дополнительные отчеты и обработки”. Подробнее о настройках можно почитать тут. Расскажу только про новые настройки, которые появились в версии 1.0.3

В отчете по коммитам мы хотели получать не просто номер задачи и сообщение коммита, но и аналитику по задаче из нашего таск-трекера. Например, наименование задачи, так как просто сообщения коммита не всегда дает понимание, а что вообще дорабатывалось.

Для этого в настройках появился блок “Описание задач из таск трекера (для отчета по коммитам)”. Эти настройки используются для заполнения в справочнике “Команды разработки” по умолчанию (см. ниже).

 

Справочник “Команды разработки”

Справочник “Команды разработки” нужен для хранения списка репозиториев проекта.

Колонка “Наименование репозитория” нужна для вывода такой же колонки в отчете по коммитам.

Колонка “Ид репозитория” это ид проекта в гитлабе. Для конкретного репозитория его можно узнать тут:

Колонка “Префикс задачи” нужна, чтобы разбивать сообщение коммита на часть с номером задачи и часть с описанием задачи.

Например, на скриншоте мой коммит. Слева номер задачи в jira, справа описание изменения (оно, как видите, не всегда информативно). Если префикс не задать или в сообщении коммита такой префикс не найдется, то колонка “Номер задачи” в отчете не будет заполнена, и описание задачи из jira тоже не получится. Будут пустые поля.

Вот тут я уже описывал, как мы сделали так, чтобы все коммиты в любой репозиторий содержали номер задачи из трекера.

Каждая команда не всегда использует одинаковый таск-трекер или может отличаться служебный пользователь для доступа к проекту, например. Поэтому в каждой команде разработке есть свои настройки для доступа к таск-трекеру.

Но их всегда можно заполнить по умолчанию из общей настройки интеграции.

 

Справочник “Разработчики”

Справочник “Разработчики” нужен для сопоставления автора коммита конкретному разработчику. Часто бывает ситуация, когда один и тот же разработчик коммитит изменения под разным email, поэтому email тут сделана в виде ТЧ.

 

Отчет по коммитам

По умолчанию сделали 3 варианта отчета. Также сделали по умолчанию фильтр по веткам разработки (master & develop), т.к. для анализа обычно хватает данных этих двух веток. Так как многие коммиты часто бывают сразу в нескольких ветках, то ветки коммита выводятся через запятую. При получении данных о коммитах каждого репозитория перебираются все ветки репозитория, так мы можем быть уверены, что ни один коммит не пройдет незамеченным.

 

Разработчики к сопоставлению

Нужен на первом этапе запуска отчета для получения всех email авторов, которые делают коммиты в репозитории команды разработки.

Например, видно, что в основной репозиторий у меня были коммиты под двумя авторами с одинаковой почтой. Такое произошло потому, что в гитсинке у меня указан один автор, а напрямую в репозиторий я коммитил под другим пользователем.

 

Данные по коммитам

Это основной вариант отчета. Сюда выводятся подробные данные по коммитам.

Так как среди коммитов попадаются мержи изменений, которые не несут особой смысловой нагрузки для этого отчета, то по умолчанию включено игнорирование таких коммитов - флаг “Без мержей”.

Пример мерж-коммита:

 

Отчет показывает данные по коммитам в разрезе команды разработки и разработчика.

 

Поле “Номер задачи” вычисляется из сообщения коммита по префиксу задачи из настройки. Если номер задачи вычислить не получилось, то все сообщение коммита уйдет в поле “Сообщение коммита”.

Поле “Описание задачи” берет описание задачи из таск-трекера (у нас это Jira). Если интеграция с таск-трекером не настроена, то будет пустое поле, ничего страшного.

Поле “Ветка” содержит через запятую все ветки, где есть указанный коммит.

Поле “Ссылка” содержит ссылку для быстрого перехода на коммит.

Поле “Всего строк” содержит общее количество измененных строк коммита. Мы его используем для понимания - большой был коммит или нет. Это не совсем “чистые” строки кода, так как в зачет идет любое изменение файла исходников, например макета печатной формы или какой-то xml структуры.

 

Статистика по коммитам

Этот вариант отчета позволяет в целом оценить вклад каждого разработчика в разработку на проекте.

Мы обычно смотрим количество коммитов по дням и в целом по каким задачам велась работа за период.

 

Рассылка

Благодаря типовому функционалу БСП можно настроить рассылку любого варианта отчета на почту.

У нас настроено две рассылки:

  • вариант “Данные по коммитам” каждую пятницу всем разработчикам для заполнения отчета по трудозатратам

  • вариант “Статистика по коммите” всей команде разработки раз в месяц перед выпуском релиза

Для просмотра всех рассылок отчетов в БСП есть специальный справочник “Рассылки отчетов”.

 

Архитектура отчета

По сути перед формированием отчета мы получаем из гитлаба и jira (опционально) таблицу данных:

Дальше эти данные можно группировать/настраивать как угодно. Кроме описания задачи из jira можно получать любую другую информацию по задаче, если это необходимо.

Например, мы у себя смотрим еще плановые и фактические трудозатраты по каждой задаче из jira на СКД. Правда, в другом отчете и его выкладывать пока не планировали. Но принцип составления отчета, думаю, понятен.

Также часть процедур и функций для работы с апи в релизе 1.0.3 переехала в другой общий модуль, чтобы можно было обращаться по апи гитлаба как с клиента, так и с сервера.

Поскольку это опенсорс, то весь код открытый и реализацию всегда можно посмотреть в репозитории проекта. Например, тут

Описание апи гитлаба можно посмотреть тут. Что еще можно вытащить по коммитам, можно посмотреть, например, тут

Что можно вытащить из апи jira, можно посмотреть тут

На гитхабе есть куча разработок с разными вариантами получения такой статистики.

Также есть публикация с альтернативным способом получения статистики по коммитам тут

 

Заключение

В целом использование отчета по коммитам на СКД внесло в нашу разработку больше порядка и, лично для меня, понимания, кто и чем занимается на проекте.

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

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

DevOps и автоматизация разработки Нейросети Программист 1С 8.3 Россия Бесплатно (free)

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

26.08.2026    421    YA_2159986692    0    

0

DevOps и автоматизация разработки Мониторинг Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    14105    mrXoxot    49    

63

Linux DevOps и автоматизация разработки Программист 1С 8.3 Беларусь Россия Казахстан Бесплатно (free)

Разворачивание полноценной CI/CD инфраструктуры для 1С на Linux — это не просто дань моде, а жесткая необходимость для бизнеса, который не может позволить себе простои из-за ошибок человеческого фактора.

25.08.2026    561    Ninel_S    0    

1

DevOps и автоматизация разработки Программист 1С 8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Полный цикл разработки расширения 1С в пакетном режиме DESIGNER: выгрузка, правка, гейт компиляции, применение к базе и контроль результата — без единого клика в конфигураторе. Разбираю семь мин, на которых подорвался лично: почему LoadConfigFromFiles возвращает нулевой код на битом модуле, зачем нужен Xvfb, как pgrep находит сам себя, кто держит базу и как отличить работающий сеанс от забытого, и почему после рестарта сервера база остаётся закрытой. Платформа 8.3.27, УТ 11.5, сервер на Linux.

24.08.2026    2431    YA_2159986692    7    

14

Интеграция Нейросети DevOps и автоматизация разработки Распознавание документов и образов 1C:ERP 1С:КА 1С:УНФ Химическая промышленность Горнодобывающая промышленность Металлургическая промышленность Россия Платные (руб)

От чертежа до себестоимости — за минуты, а не дни. ИИ-Технолог автоматически распознаёт чертежи и техническую документацию (включая фото, сканы, PDF, Excel), рассчитывает нормы времени, формирует технологические маршруты, оценивает возможность изготовления и точную себестоимость. Интеграция с 1С (ERP, MES, КА, УНФ) и отраслевыми нормативами (ГОСТы).

366000 руб.

18.06.2026    1363    0    2    

0

DevOps и автоматизация разработки Программист 1С:Предприятие 8 Бесплатно (free)

Технический разбор нашего конвейера разработки на 1С: песочницы, Gitea, сборка, проверки и CLI backend'ы. Основной CLI - cursor; также поддерживаются codex, claude и экспериментальный mimo.

16.06.2026    5373    Aleksandr    5    

8

DevOps и автоматизация разработки Программист Бесплатно (free)

Использование современных DevOps-практик в разработке и сопровождении активно внедряется в стек 1С. Мы в MagnitTech активно используем Docker, в том числе и для контейнеризации 1С-приложений, что позволяет ускорить развертывание, улучшить отказоустойчивость и упростить масштабирование. Рассмотрим лучшие практики создания Dockerfile и нюансы работы в контейнере для сервера приложений и сервера взаимодействия 1С – с какими сложностями мы столкнулись и как их преодолели.

26.05.2026    3123    daniloffartur    1    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3301 19.08.23 22:02 Сейчас в теме
Это, конечно, интересно, но мне казалось, что в гитлабе и прочих местах все то же самое, только умными существами сделано, а не любителями желтых табличек.
2. arcius_7012 244 19.08.23 22:18 Сейчас в теме
(1) Ну так и не пользуйтесь, я вам свои инструменты не навязываю. Пользуйтесь инструментами умных людей, на здоровье)
user1095034; AlexGr00vy; +2 Ответить
3. Oculta 20.08.23 08:10 Сейчас в теме
Ох уж это непомерно раздутое ЧСВ любителей желтых табличек..
4. azxasd 10.12.24 17:34 Сейчас в теме
Ох уж это непомерно раздутое ЧСВ не любителей желтых табличек..
Для отправки сообщения требуется регистрация/авторизация