Перейти к основному содержимому

GoCPG — движок графа кода

Узнайте, как GoCPG строит граф кода, выполняет запросы и проверки и передаёт результаты CodeGraph через CLI и gRPC.

GoCPG

GoCPG разбирает исходники и строит граф свойств кода (Code Property Graph, CPG). Граф связывает объявления, вызовы, типы, потоки управления и данных с координатами в исходных файлах. Этот раздел предназначен разработчикам интеграций, архитекторам и операторам: здесь можно выбрать интерфейс движка, разобраться в результатах анализа и перейти к конкретной проверке.

GoCPG используется внутри CodeGraph, но имеет собственные CLI и gRPC-сервер. Для знакомства с моделью графа прочитайте объяснение CPG. Для отдельного предложения Rabotnik + GoCPG откройте codegraph.tech.

От исходников к результату

  1. Языковой адаптер извлекает объявления, выражения, вызовы и синтаксические связи.
  2. Проходы анализа добавляют типы, разрешённые вызовы, потоки управления и данных.
  3. GoCPG сохраняет граф в DuckDB. Состав проходов зависит от языка и профиля.
  4. Запросы и правила используют граф для поиска сущностей, связей и нарушений.
  5. Клиент получает структурированный результат с координатами исходников.

Например, в 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
GoCPG CodeGraph
Разбор исходников, построение и обновление графа Подключение репозиториев и организация рабочих процессов
Запросы, навигация, правила и результаты анализа Аудит, сценарии, REST/MCP и представление результатов пользователю
Данные о находках, координатах и полноте анализа Оценки Dashboard, задачи, ответственные и приёмка изменений

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