Построение профилей авторов¶
CodeScoring TQI позволяет изучать индивидуальный вклад авторов в проекты с помощью интерактивных профилей и визуализации активности. Информация об авторах доступна в нескольких форматах, помогающих оценить их работу наиболее полным образом.
Список авторов¶
В разделе TQI -> Авторы
содержится весь авторский состав, участвующий в изменении кодовой базы организации.
- Автор – имя и почта автора;
- Работает с – дата первого коммита автора;
- Последняя активность – дата последнего коммита автора в проекте;
- Активность, месяцы – количество месяцев, в течение которых автор активно коммитил изменения;
- Проекты – общее количество проектов, в которых участвовал автор;
- Коммиты – общее количество коммитов, сделанных автором в проекте;
- Сложность – средняя цикломатическая сложность по коммитам автора в проекте;
- Дубликаты – количество заимствованных автором фрагментов кода;
- OSS проекты – общее количество Open Source проектов, в которых участвовал автор;
- Поздразделение – часть организации, к которой относится автор;
- Технологии – языки программирования, с которыми работает автор (определяется по его коммитам).
Карта активности¶
Работа авторов визуализируется в виде карты активности, которую можно увидеть на вкладке Карта активности.
Карту можно отфильтровать по следующим параметрам:
- Дата коммита – период, в течение которого был совершен коммит в системе контроля версий;
- Количество авторов – общее количество авторов, отображаемое на карте;
- Поздразделение – часть организации, которая управляет проектом;
- Категория проектов – категория, назначенная в рамках системы CodeScoring;
- Проект – название проекта;
- Технологии – языки программирования, используемые в проекте.
Фильтр по технологии (языку) применяется к коммитам. Если в коммите есть изменения на указанном языке, он включается в выборку.
Допустим, есть следующие коммиты:
Автор | Язык 1 | Доля | Язык 2 | Доля |
---|---|---|---|---|
Автор 1 | Python | 100% | JS | 1% |
Автор 1 | Python | 50% | Java | 50% |
Автор 2 | Java | 100% | — | — |
Автор 2 | JS | 100% | — | — |
Автор 2 | JS | 99% | Python | 1% |
Если установить фильтр на Python, то в выборку попадут коммиты 1, 2 и 5, так как они содержат изменения на этом языке.
После фильтрации коммиты группируются по месяцам и агрегируются. В результате возможны ситуации, когда основной язык месяца — JS, а Python занимает всего 1%, но при этом он всё равно попадает в выборку.
Карту можно также сохранить как PNG изображение.
Страница автора¶
На индивидуальной странице автора содержатся ключевые метрики его работы:
- Период активности – даты начала активности и последнего изменения от автора;
- Активность, месяцы – количество месяцев, в течение которых автор активно коммитил изменения;
- Проекты организации – количество проприетарных проектов, в которые автор вносил изменения;
- Open Source проекты – количество проектов с открытым исходным кодом, в которые автор вносил изменения;
- Сложность – средняя цикломатическая сложность по коммитам автора в проектах;
- Дубликаты – количество заимствованных автором фрагментов кода;
- Строки кода – общее количество строк кода, написанных автором;
- Коммиты – общее количество коммитов, сделанных автором в проекте;
Помимо этого на странице можно увидеть списки проектов организации, и Open Source проекты, в которых участвовал автор.
На вкладке Похожие авторы содержится список разработчиков с наиболее схожими компетенциями к автору. Процент схожести между авторами рассчитывается из набора используемых технологий, участия в проектах и сложности написанного кода.
Правила объединения авторов¶
Профили авторов можно объединять по почте в случае наличии дубликатов или нескольких аккаунтов одного и того же разработчика.
В разделе Настройки -> Авторы
доступно автоматическое объединение авторов по кнопке Создать правила автоматически, а также создание правил объединения вручную по кнопке Добавить новое правило.
После объединения профиль автора будет содержать все связанные с его основной почтой адреса, а его активность будет отслеживаться по всем коммитам с указанными адресами.