Details
Title | Разработка системы формирования корректирующих и предупредительных действий на основе изменений репозитория кода: выпускная квалификационная работа бакалавра: направление 09.03.03 «Прикладная информатика» ; образовательная программа 09.03.03_03 «Интеллектуальные инфокоммуникационные технологии» |
---|---|
Creators | Ильчук Александр Евгеньевич |
Scientific adviser | Пархоменко Владимир Андреевич |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Imprint | Санкт-Петербург, 2025 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | репозиторий ; анализ данных ; метрики ; качество кода ; repository ; data analysis ; metrics ; code quality |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.03 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-5199 |
Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
Additionally | New arrival |
Record key | ru\spstu\vkr\39256 |
Record create date | 9/25/2025 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Action 'Download' will be available if you login or access site from another network
Group | Anonymous |
---|---|
Network | Internet |
Объект исследования – процесс автоматизированного анализа истории коммитов в Git-репозиториях с целью выявления «рисковых» изменений и генерации корректирующих и предупреждающих рекомендаций. Цель работы – разработать модульную систему, способную автоматически собирать данные о коммитах из удалённых и локальных репозиториев, проводить статический анализ, обучать модель машинного обучения для предсказания риска коммита и формировать для каждого потенциально «рискового» изменения набор рекомендаций CAPA. В работе выполнены следующие основные этапы: Реализован класс GitHubRepoAnalyzer, который через GitHub API или локальный клон последовательно извлекает историю коммитов, собирает базовые метрики (число добавленных/удалённых строк, число изменённых файлов, время между коммитами) и дополняет их результатами статических анализаторов (pylint, Bandit, ESLint, Checkstyle). Для автоматической разметки выполнена кластеризация методом KMeans, разделяющая коммиты на «нормальные» и «аномальные» по признакам объёма и качества кода. На основе полученных меток обучается модель, обёрнутая в универсальный класс CommitRiskModel, позволяющий тестировать различные классификаторы (LogisticRegression, RandomForest, SVM, LightGBM, DeepForest и др.) без изменения кода. Модель предсказывает вероятность «рискового» коммита и вычисляет важность признаков. На основании вероятности риска и значений ключевых признаков формируется набор текстовых рекомендаций. При превышении пороговых значений формируются предупреждающие сообщения и рекомендации по доработке (добавление тестов, рефакторинг, дополнительная проверка кода). Система автоматически создаёт Pull Request с файлом в формате Markdown, содержащим CAPA-рекомендации. Разработан интерактивный дашборд на Dash + Plotly, включающий разделы: – распределение метрик коммитов, – анализ риска (распределение коммитов по вероятностям, важность признаков), – активность авторов (графики среднего риска по каждому разработчику), – таблица коммитов с рекомендациями CAPA и возможностью фильтрации по проекту, автору и дате. В качестве тестовых примеров использовались несколько реальных учебных и рабочих репозиториев. Проведено сравнительное тестирование классификаторов на основе метрик Precision, Recall, F1-score и ROC-AUC; для каждого проекта определены оптимальные алгоритмы. Система автоматизирует полный цикл анализа коммитов и выдачи рекомендаций CAPA, сокращая время обратной связи, улучшая качество кода и снижая число «рисковых» изменений.
The object of research is the process of automated analysis of commit history in Git repositories for the purpose of identifying "risky"changes and generating corrective and preventive recommendations. The goal of the work is to develop a modular system capable of automatically collecting commit data from remote and local repositories, conducting static analysis, training a machine learning model to predict commit risk, and generating a set of CAPA recommendations for each potentially "risky"change. The following main stages were completed in the work: A GitHubRepoAnalyzer class was implemented, which sequentially extracts commit history through GitHub API or local clone, collects basic metrics (number of added/deleted lines, number of changed files, time between commits) and supplements them with results from static analyzers (pylint, Bandit, ESLint, Checkstyle). For automatic labeling, KMeans clustering was performed, dividing commits into "normal"and "anomalous"based on code volume and quality features. Based on the obtained labels, a model wrapped in a universal CommitRiskModel class is trained, allowing testing of various classifiers (LogisticRegression, RandomForest, SVM, LightGBM, DeepForest, etc.) without code changes. The model predicts the probability of a "risky"commit and calculates feature importance. Based on risk probability and key feature values, a set of textual recommendations is formed. When threshold values are exceeded, warning messages and improvement recommendations are generated (adding tests, refactoring, additional code review). The system automatically creates a Pull Request with a Markdown file containing CAPA recommendations. An interactive dashboard was developed using Dash + Plotly, including sections: – commit metrics distribution, – risk analysis (commit distribution by probabilities, feature importance), – author activity (charts of average risk for each developer), – commit table with CAPA recommendations and filtering capabilities by project, author, and date. Several real educational and working repositories were used as test examples. Comparative testing of classifiers was conducted based on Precision, Recall, F1-score, and ROC-AUC metrics; optimal algorithms were determined for each project. The system automates the complete cycle of commit analysis and CAPA recommendation generation, reducing feedback time, improving code quality, and decreasing the number of "risky"changes.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
- Разработка системы формирования корректирующих и предупредительных действий на основе изменений репозитория кода
- Введение
- 1. Исследование методов и средств формирования CAPAs на основе изменений репозитория кода
- 2. Проектирование системы формирования CAPAs на основе изменений репозитория кода
- 3. Реализация системы формирования CAPAs на основе изменений репозитория кода
- 4. Тестирование системы формирования CAPAs на основе изменений репозитория кода
- Заключение
- Словарь терминов
- Список использованных источников
- Приложение 1. Исходный код разработанного решения
- Приложение 2. Сравнение моделей классификации для разных проектов
Access count: 0
Last 30 days: 0