GoCPG разбирает исходники и строит граф свойств кода (Code Property Graph, CPG). Граф связывает объявления, вызовы, типы, потоки управления и данных с координатами в исходных файлах. Этот раздел предназначен разработчикам интеграций, архитекторам и операторам: здесь можно выбрать интерфейс движка, разобраться в результатах анализа и перейти к конкретной проверке.
GoCPG используется внутри CodeGraph, но имеет собственные CLI и gRPC-сервер. Для знакомства с моделью графа прочитайте объяснение CPG. Для отдельного предложения Rabotnik + GoCPG откройте codegraph.tech.
От исходников к результату
- Языковой адаптер извлекает объявления, выражения, вызовы и синтаксические связи.
- Проходы анализа добавляют типы, разрешённые вызовы, потоки управления и данных.
- GoCPG сохраняет граф в DuckDB. Состав проходов зависит от языка и профиля.
- Запросы и правила используют граф для поиска сущностей, связей и нарушений.
- Клиент получает структурированный результат с координатами исходников.
Например, в Python-модуле service.py вызов импортированной функции
helpers.format_greeting сначала представлен синтаксическим узлом. Разрешение
импортов и вызовов связывает его с объявлением в helpers.py. Архитектурное
правило может затем проверить зависимость между компонентами, которым принадлежат
эти файлы. Если цель вызова не разрешена, это ограничение анализа, которое нужно
учесть при оценке полноты результата.
Что проверяет движок
| Задача | Материал для чтения | Существенная граница |
|---|---|---|
| Понять модель и семантические проходы | Устройство GoCPG и сравнение с Joern | Поддержка языка не означает одинаковую точность каждого прохода. |
| Найти синтаксический шаблон и применить YAML-правило | Структурный поиск | Поиск по исходникам и сканирование CPG имеют разные входы. Переписывание требует отдельного действия. |
| Задать компоненты и ограничения зависимостей | Модель архитектуры и правила | Невыбранное правило и неполные данные нельзя считать успешной проверкой. |
| Выполнить архитектурную проверку | Выполнение и управление | Код завершения команды сам по себе не доказывает разрешение выпуска. |
| Прочитать сохранённый запуск или экспортировать находки | Интерфейсы и результаты | Нужны идентификатор запуска и база, содержащая этот запуск. |
Статический анализ не выполняет программу. Динамические импорты, генерация кода, рефлексия и неполный набор исходников могут ограничивать разрешение связей. Сверяйте область разбора, ошибки, выбранные правила и признаки полноты; пустой список находок без этих сведений не подтверждает отсутствие дефектов.
Интерфейсы и начало работы
CLI работает с исходниками и локальной базой. gRPC позволяет клиентскому приложению запускать операции и получать типизированные результаты. Контракты удалённых методов и Python-клиент CodeGraph описаны отдельно в справочнике gRPC. Python-клиент — часть интеграции платформы; его настройки не следует принимать за флаги сервера GoCPG. REST и MCP платформы также не являются интерфейсами самого движка.
Для запуска примеров нужен совместимый бинарник GoCPG. В исходной рабочей копии CodeGraph откройте PowerShell в корне репозитория и проверьте доступные команды:
.\gocpg\gocpg.exe --help
.\gocpg\gocpg.exe architecture --help
Первая команда показывает команды движка, вторая — подкоманды архитектуры, включая
validate, describe и explain. Если бинарника нет или команда отсутствует,
выполните подготовку окружения.
Это проверка локальной установки, а не обещание готового автономного дистрибутива.
Для воспроизводимого анализа следуйте полному
учебному запуску.
Хранение и эксплуатация
GoCPG владеет записью в проектную DuckDB. Сервисные потребители читают данные через gRPC; локальный SQL служит диагностике. Не запускайте конкурирующих писателей в один файл базы. Схема хранения объясняет таблицы архитектурных результатов и различие между отсутствием находок и отсутствием данных.
Общие установка, аудит, сценарии и эксплуатация CodeGraph остаются в своих разделах: установка, аудит CPG, методология Dashboard.
Где заканчивается GoCPG и начинается CodeGraph
| GoCPG | CodeGraph |
|---|---|
| Разбор исходников, построение и обновление графа | Подключение репозиториев и организация рабочих процессов |
| Запросы, навигация, правила и результаты анализа | Аудит, сценарии, REST/MCP и представление результатов пользователю |
| Данные о находках, координатах и полноте анализа | Оценки Dashboard, задачи, ответственные и приёмка изменений |
Архитектурные статусы GoCPG относятся к проверке заданной политики и её входов. Они не закрывают задачу разработки и не заменяют решение ответственного за выпуск в потребляющей платформе. Такая граница позволяет повторно использовать движок, сохраняя правила управления в приложении, которое его вызывает.