Об этом проекте

MergeMind представляет собой анализатор merge-запросов, интегрированный в CI и предназначенный для команд, которым необходимо предоставлять аудиторские доказательства по изменениям в коде. Он запускается как GitHub Action или задание GitLab CI, проверяет diff pull/merge-запроса и публикует структурированную оценку в виде комментария или заметки к запросу. ## Результаты работы Для каждого pull-запроса инструмент генерирует: - структурированный заголовок и краткое описание PR - рейтинг уровня риска (Low / Medium / High) - сопоставление с контролями соответствия SOX, SOC2 и ISO 27001 (в примере README для изменения аутентификации приводятся SOX CC6.1, SOC2 CC6.1 и ISO 27001 A.9.4) - анализ пробелов в контролях - рекомендации по устранению В README показана разница: расплывчатое описание «обновил несколько файлов и исправил ошибки» заменяется на заголовок с резюме, уровень риска, сопоставление с контролями, выявленный пробел (принудительное использование MFA не покрыто тестами) и предлагаемое действие перед слиянием с веткой main. ## Принцип работы GitHub Actions: вы добавляете workflow, который срабатывает на событие `pull_request` (opened, synchronize, reopened), выполняет checkout с `fetch-depth: 0` для корректного определения диапазона diff и вызывает `gusinfosec/mergemind@v1`. Требуемый секрет — `OPENAI_API_KEY`; секрет с лицензионным ключом является необязательным. Действию требуются разрешения `contents: read` и `pull-requests: write`; комментарий создается при первом пуше и в дальнейшем обновляется. GitLab CI: в README указано, что путь для GitLab пока предполагает копирование — вы копируете `examples/gitlab-ci.yml` в свой репозиторий (или объединяете задание), что клонирует MergeMind в `.mergemind` и запускает анализ. Необходимые переменные CI/CD: `OPENAI_API_KEY` и персональный токен доступа `MERGEMIND_GITLAB_TOKEN` с областью доступа `api` для публикации заметок к MR; `MERGEMIND_GITLAB_HOST` используется для self-managed экземпляров и по умолчанию равен gitlab.com. Упаковка в виде однострочного действия доступна только для GitHub Actions. ## Лицензирование и ограничения Бесплатный уровень включает заголовок, краткое описание PR и уровень риска. Сопоставление с требованиями соответствия, анализ пробелов в контролях, рекомендации по устранению и анализ полного diff без лимита токенов указаны как функции, доступные только по лицензии. Лицензия описывается как единоразовая покупка за 29 долларов через Stripe, при этом лицензионный ключ хранится как секрет репозитория/CI; в README также упоминается бесплатный уровень, работающий без ключа. Стоит отметить, что бейдж репозитория указывает на лицензию MIT, в то время как несколько основных функций ограничены платным ключом. ## Описание безопасности Обработка происходит внутри вашего собственного CI-раннера, API-ключи хранятся в секретах CI, и в README утверждается, что код не хранится внешне. Тем не менее, diff-ы отправляются в OpenAI API для анализа, что следует проверить на соответствие вашим требованиям к обработке данных. ## Практические соображения Перед внедрением следует заложить бюджет на API-ключ OpenAI и стоимость работы модели за каждый запуск, решить, допустима ли отправка diff-ов внешнему провайдеру моделей для данных репозиториев, и рассматривать сопоставление с контролями скорее как подсказки для рецензента, а не как аудиторское заключение. Проект опубликован Cyber Global Technologies LLC, контакт для поддержки — team@mergemind.dev; запросы для предприятий направляются на info@cyberglobal.ai.