golang

Как создать документацию к коду, а потом ее обновить с помощью нейросети

  • понедельник, 29 декабря 2025 г. в 00:00:11
https://habr.com/ru/articles/981282/

На самом деле, я человек, который предпочитает писать всю документацию самостоятельно. Меня не страшит код, я довольно хорошо работаю с регулярными выражениями, поэтому преобразование файлов из кода в Markdown не занимает у меня много времени. Но даже мне пришлось согласиться, что в некоторых случаях использовать нейросеть гораздо быстрее и удобнее. И я разберу эти два случая в этой статье.

Какие случаи мы рассмотрим

В этой статье я покажу:

  • Кейс 1: как сгенерировать документацию к коду с помощью расширения VS Code;

  • Кейс 2: как получить информацию о пул-реквесте на GitHub и сгенерировать пул-реквест для обновления документации.

Что вам понадобится

  • Чтобы была возможность работать с тестовым репозиторием на GitHub, у вас должен быть действующий аккаунт.

  • Для действий на компьютере понадобятся git, VS Code и Roo Code.

Кейс 1: Как сгенерировать документацию к коду с помощью расширения VS Code

В этом кейсе мы возьмем папку deckhouse-test-ai/global-hooks/, дадим к ней доступ для нейросети и сгенерируем описание вебхуков в этой папке.

Чтобы получить контент папки:

  1. Склонируйте тестовый репозиторий: https://github.com/elenashliaga/deckhouse-test-ai.

  2. В ветке main сейчас уже лежат файлы с описанием кода. Чтобы сгенерировать файлы с нуля, перейдите на ветку test-branch.

Шаг 1. Настройте Roo Code для работы

Перед настройкой Roo Code нужно выбрать провайдера для работы с нейросетью. Подойдет любой провайдер, который предоставляет нейросети с API, совместимым с OpenAI (а это практически любой провайдер). Я использовала Yandex Cloud, потому что у меня был действующий грант.

От провайдера для работы нужно получить ссылку на сервер, API-ключ и название нейросети.

В настройках Roo Code это будет выглядеть так:

  1. Чтобы перейти в настройки Roo Code, нажмите "шестерёнку".

  2. В поле API Provider выберите OpenAI Compatible для API, совместимых с OpenAI.

  3. В поле Base URL вставьте ссылку, полученную у провайдера.

  4. В поле API Key вставьте ключ, полученный у провайдера.

  5. В поле Model вставьте название нейросети по шаблону от провайдера. Я использовала Qwen3-235B-A22B.

Шаг 2. Введите промпт и отправьте запрос через Roo Code

Откройте Roo Code через левую панель и введите запрос:

Возьми папку по пути deckhouse-test-ai/global-hooks/. В этой папке лежат вебхуки для приложения deckhouse. Проанализируй код в этой папке и каждой подпапке. Сделай общее описание назначения вебхуков в каждой папке и создай страницу в формате markdown с описанием. Описание должно быть сгенерировано по шаблону:

Общие вебхуки/Вебхуки миграции/(подставь название согласно назначению вебхуков в подпапке)

Напиши общее описание всех вебхуков. Напиши, зачем они нужны

Список вебхуков

Создай список вебхуков с их названиями, назначением и примером использования по шаблону:

  • вебхук 1

    • название: ...

    • назначение: ...

    • пример использования: ...

После запроса расширение запросит доступ к контенту в папке. Подтвердите доступ и подождите немного, пока будут генерироваться файлы README.

Шаг 3. Проверьте полученные файлы

Проверьте с помощью git status или в VS Code, что файл или файлы были сгенерированы.

Готово, вы установили расширение Roo Code и сгенерировали описание кода с помощью нейросети. При желании вы можете создать собственную ветку и внести коммит в тестовый репозиторий.

Кейс 2: Как получить информацию о пул-реквесте на GitHub и сгенерировать пул-реквест для обновления документации

Для этого кейса в тестовом репозитории я создала пул-реквест, в котором удалила один из вебхуков из папки deckhouse-test-ai/global-hooks/. Чтобы обновить документацию на основе этого пул-реквеста, мы добавим MCP-сервер в Roo Code и с помощью нейросети создадим пул-реквест на обновление документации в папке deckhouse-test-ai/global-hooks/.

Шаг 1. Создайте персональный ключ для аккаунта на GitHub

  1. Нажмите на иконку профиля в правом верхнем углу. Откройте Settings.

  2. Выберите последний пункт меню слева Developer Settings.

  3. Выберите Personal access tokens > Fine-grained tokens.

  4. Нажмите Generate new token и настройте токен. Я, на самом деле, выдала для тестового токена все права, которые были. Но вы всегда можете выбрать права в соответствии со своей задачей.

  5. Скопируйте токен и сохраните в надежном месте.

Готово, вы создали токен для доступа к MCP GitHub. Теперь нужно подключить сам MCP к VS Code.

Шаг 2. Подключите MCP-сервер

Подключить сервер можно двумя способами: с использованием Docker и без использования Docker.

Как подключить MCP-сервер с использованием Docker

  1. Установите и запустите Docker.

  2. Откройте настройки Roo Code в VS Code.

  3. Выберите раздел MCP Servers и нажмите Edit Project MCP, как на скриншоте:

  4. В файл вставьте конфигурацию ниже:

    Конфигурация
    {
    "mcpServers": {
    "github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "ghcr.io/github/github-mcp-server"
    ],
    "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
    },
    "alwaysAllow": [
    "get_pull_request"
    ]
    }
    },
    "inputs": [
    {
    "type": "promptString",
    "id": "github_token",
    "description": "GitHub Personal Access Token",
    "password": true
    }
    ]
    }
    

Готово, MCP-сервер должен отображаться в настройках Roo Code без ошибок.

Как подключить MCP-сервер без использования Docker

  1. Склонируйте репозиторий: https://github.com/github/github-mcp-server.

  2. Проверьте, установлен ли go с помощью команды go version. Если не установлен, то установите go.

  3. Перейдите в папку github-mcp-server/cmd/github-mcp-server/ и запустите команду go build, чтобы собрать скрипт, которым будет использовать Roo Code.

  4. Откройте настройки Roo Code в VS Code.

  5. Выберите раздел MCP Servers и нажмите Edit Project MCP, как на скриншоте:

  6. В файл вставьте конфигурацию ниже. Обратите внимание, что в ключе command должен быть путь к скрипту из корня проекта, а в GITHUB_PERSONAL_ACCESS_TOKEN — токен из аккаунта GitHub:

    Конфигурация

    {
    "mcpServers": {
    "github": {
    "command": "./github-mcp-server/cmd/github-mcp-server/github-mcp-server",
    "args": [
    "stdio"
    ],
    "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "<вставьте токен>"
    },
    "alwaysAllow": [
    "get_pull_request"
    ]
    }
    }
    }

Готово, MCP-сервер должен отображаться в настройках Roo Code без ошибок.

Шаг 3. Введите промпт и отправьте запрос через Roo Code

Откройте Roo Code через левую панель и введите запрос:

внеси изменения в пул-реквест Удалить вебхук #2 репозитория elenashliaga/deckhouse-test-ai. В репозитории лежат README файлы с описанием вебхуков. Получи изменения кода в пул-реквесте и отредактируй файлы в соответствии с изменением в коде.

После запроса расширение запросит доступ к данным на GitHub. Подтвердите доступ и подождите немного, пока будут генерироваться изменения в файлах README.

Шаг 3. Проверьте результат на GitHub

Откройте репозиторий на GitHub и проверьте наличие изменений.

Заключение

В этой статье я делала упор на подключение провайдера и MCP GitHub к Roo Code. Результат работы нейросети и возникающие ошибки во время работы могут быть разными, поэтому лучше всего будет подбирать собственные промпты и указания.

Надеюсь, что статья была полезна для вас :)