Details
| Title | Разработка автоматизированной системы поддержки процессов непрерывной интеграции исходного кода: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_01 «Разработка компьютерных систем» = Development of an automated support system for continuous integration processes of source code |
|---|---|
| Creators | Куликов Никита Вячеславович |
| Scientific adviser | Тарасов Олег Михайлович |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | непрерывная интеграция ; статический анализ кода ; абстрактное синтаксическое дерево ; tree-sitter ; граф зависимостей ; система контроля версий ; байесовское сглаживание ; аномальные конструкции ; continuous integration ; static code analysis ; abstract syntax tree ; dependency graph ; version control system ; bayesian smoothing ; anomalous constructs |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 09.03.01 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-2069 |
| Rights | Доступ по паролю из сети Интернет (чтение) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\42873 |
| Record create date | 8/21/2026 |
Allowed Actions
–
Action 'Read' will be available if administrator prepare required files
| Group | Anonymous |
|---|---|
| Network | Internet |
Современное программное обеспечение в значительное мере строится на основе сторонних библиотек с открытым исходным кодом, такой подход используется в 90% крупных проектах. При таком объеме заимствованного кода сборочный конвейер и вся программная архитектура подвергается рис- кам: нестабильные зависимости, устаревшие версии библиотек, аномальные конструкции. Существующие инструменты контроля сборки опираются на текстовый поиск либо облачные базы известных уязвимостей, а это приводит к частым ложным срабатываниям и не позволяет работать в изолированном контуре организации локально. В итоге актуальной становится задача создания локального инструмента, способного автоматически принимать решение о допуске сборки на основе комплексного анализа исходного кода. Данная работа посвящена созданию агента поддержки сборочного конвейера, объединяющего многоязычный синтаксический разбор, анализ графа зависимостей и оценку метаданных системы контроля версий. Задачи, которые решались в ходе разработки: 1. Анализ существующих решений поддержки сборочных конвейеров и обзор алгоритмов статического анализа исходного кода; 2. Разработка модуля анализа графа зависимостей для разбора манифестов и построения графа прямых и транзитивных библиотек; 3. Разработка модуля трансляции исходного кода в абстрактные синтаксические деревья на базе библиотеки Tree-sitter с поддержкой нескольких языков программирования; 4. Разработка эвристического алгоритма обхода дерева для выявления аномальных конструкций в коде; 5. Разработка модуля анализа метаданных системы контроля версий для оценки поведения авторов коммитов; 6. Разработка метода математической агрегации разнородных метрик с при- менением байесовского сглаживания; 7. Интеграция разработанных модулей в сборочный конвейер; 8. Экспериментальная оценка скорости и точности работы алгоритмов на размеченной выборке проектов.
Modern software largely consists of third-party open-source libraries, whose share in large projects reaches 90%. With such volumes of borrowed code, the build pipeline is exposed to engineering risks: the inclusion of unstable dependencies, outdated library versions, and anomalous constructs. Existing build control tools rely either on text-based search or cloud databases of known vulnerabilities, which leads to a large number of false positives and does not allow operation within an isolated corporate environment. In this regard, the urgent task is to create a local tool capable of automatically making decisions on build admission based on comprehensive source code analysis. The given work is devoted to creating a software agent for build pipeline support that combines multi-language syntactic parsing, dependency graph analysis, and version control metadata evaluation. The development set the following goals: 1. Analysis of existing build pipeline support solutions and review of static source code analysis algorithms; 2. Development of a dependency graph analysis module for parsing manifests and building a graph of direct and transitive libraries; 3. Development of a multi-language source code translation module into abstract syntax trees based on the Tree-sitter library; 4. Development of a heuristic tree traversal algorithm for detecting anomalous combinations of code constructs; 5. Development of a version control metadata analysis module for evaluating the behavior of commit authors; 6. Development of a method for mathematical aggregation of heterogeneous metrics using Bayesian smoothing; 7. Integration of the developed modules into an experimental build pipeline; 8. Experimental evaluation of the speed and accuracy of the algorithms on a labeled sample of projects.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|