← Назад до блогу

n8n Code Review Agent: від вебхука PR до опублікованого коментаря

Крокова побудова агента рев'ю коду на n8n: з'єднайте вебхук pull request із GitHub чи GitLab з AI-агентом, який перевіряє diff і публікує коментарі.

Агент рев'ю коду на n8n переміщує diff через лінзу до проштампованого коментаря pull request.

Перевірено за наведеними джерелами .

Що ви створите: агент рев'ю коду на n8n від PR до коментаря

Конверт pull request, сувій diff та проштампована бульбашка коментаря, розташовані на робочому столі.
Ілюстративний вигляд трьох складових, які поєднує агент рев'ю коду на n8n: тригер, diff і коментар.

Це редакційна вправа, а не збірка, яку ми запускали чи перевіряли від початку до кінця: самодостатнє завдання, яке ви можете спробувати виконати самостійно. Мета — спроєктувати агента рев'ю коду на n8n, який стежить за pull request або merge request, читає diff, перевіряє його на відповідність письмовим конвенціям вашої команди та публікує структурований коментар назад у PR чи MR, без ручного копіювання тексту між інструментами.

Вузол AI Agent в n8n не може самостійно аналізувати diff. Офіційна документація n8n зазначає, що вузол потребує щонайменше одного під'єднаного інструмента (tool sub-node), перш ніж він зможе запуститися, тож будь-який дизайн агента рев'ю коду на n8n має давати агенту щось, що він може викликати — чи то інструмент для отримання diff, чи документ із конвенціями, чи обидва разом.

Sources: AI Agent | Nodes | n8n Docs

Передумови та вхідні дані, які вам знадобляться

Планшет із позначеними жетонами для репозиторію, моделі, конвенцій, облікових даних та вебхука, два з яких позначено галочкою.
Концептуальний чекліст облікових записів, облікових даних та вхідних даних, які ця вправа передбачає перед початком.

Перш ніж щось з'єднувати, підготуйте чотири речі: інстанс n8n (хмарний або self-hosted), обліковий запис GitHub чи GitLab із репозиторієм, на якому можна безпечно тестувати, облікові дані API, обмежені цим репозиторієм, та обліковий запис провайдера ШІ, модель якого ви плануєте викликати з вузла AI Agent.

Щодо облікових даних, власна документація n8n рекомендує персональний токен доступу зі скоупом repo для більшості операцій вузла GitHub, тоді як для облікових даних GitLab документація вказує на потребу в ширшому скоупі api, щоб розблокувати повну функціональність вузла. Оскільки цьому workflow потрібно лише читати diff і публікувати коментарі, ця рекомендація для GitLab передбачає більше доступу, ніж строго необхідно для завдання.

Sources: GitHub credentials | Nodes | n8n Docs, n8n-docs/docs/integrations/builtin/credentials/gitlab.md at main · n8n-io/n8n-docs · GitHub

Побудова workflow: п'ять кроків від вебхука до коментаря

Конвеєр станцій, що показує рух diff через кроки тригера, отримання, конвенцій, агента та коментаря.
Концептуальний вигляд процесу п'яти етапів, через які агент рев'ю коду на n8n проводить diff pull request.

Загальна форма workflow рев'ю коду на n8n коротка: тригер, отримання diff, пошук конвенцій, виклик агента та публікація коментаря. Діаграма нижче показує цей порядок; абзаци після неї розкривають важливі рішення на кожному етапі.

Від pull request до опублікованого рев'ю: 1. Тригер; 2. Отримати diff; 3. Завантажити конвенції; 4. Запустити агента; 5. Опублікувати коментар

Власна документація вузла GitHub перелічує операції для pull request, які включають пряме отримання diff чи patch, поряд із подіями GitHub Trigger для звичайної активності pull request, подання рев'ю та коментарів рев'ю. Тригер GitLab аналогічно надає подію merge request, але задокументовані операції вузла застосунку GitLab охоплюють файли, issues, релізи, репозиторії та користувачів, без жодної перелічненої дії merge request для отримання diff чи публікації коментаря. Одна задокументована спільнотна збірка обходить цю прогалину, звертаючись до API GitLab через вузол HTTP Request — саме такий підхід вона використала для свого workflow рев'ю коду на n8n для GitLab.

Підтримка вузлів GitHub проти GitLab для цього workflow
КрокВузол застосунку GitHubВузол застосунку GitLab
Отримати diffЗадокументована операція Get Diff / Get PatchНемає задокументованої операції merge request; єдина задокументована спільнотна збірка, яку ми розглянули, використала HTTP Request
Опублікувати коментарЗадокументована операція створення коментаряНемає задокументованої операції merge request; єдина задокументована спільнотна збірка, яку ми розглянули, використала HTTP Request
Подія тригераПодії pull request, review та review-commentПодія merge request поряд з issues, pipelines та іншою активністю

Для конвенцій команди одна задокументована спільнотна збірка під'єднує Google Sheet зі стандартами кодування команди як інструмент, до якого AI Agent може звертатися, замість того щоб вставляти правила безпосередньо в текст промпту. Ми вважаємо, що такий підхід на основі інструмента вартий додаткового налаштування: він дозволяє повторно використовувати один workflow для репозиторіїв із різними стандартами, замість форкання промпту щоразу, коли змінюється правило.

Коли агент має і diff, і конвенції, наступне рішення дизайну стосується форми виведення. Якщо попросити модель повернути структурований результат — наприклад, JSON-масив із полями file, line і comment — і розпарсити його за допомогою Structured Output Parser в n8n, крок публікації коментаря отримує передбачувані дані для мапування, що перегукується з тим, як одна задокументована спільнотна збірка формувала свої коментарі рев'ю для GitLab. В окремому блозі спільноти про створення автоматизації рев'ю коду на основі ШІ розробник Harsh Jolapara описує подібну автоматизацію так:

Публікація коментаря назад зазвичай є найпростішим викликом вузла: вузол GitHub включає операцію створення коментаря, і одна задокументована спільнотна збірка використовує її для публікації відгуку ШІ одразу після завершення роботи агента; аналог для GitLab знову проходить через вузол HTTP Request у тій єдиній задокументованій спільнотній збірці для GitLab, яку ми розглянули. У будь-якому разі ставтеся до коментаря ШІ як до чернеткової думки в PR, а не як до умови для злиття.

Sources: AI Agent | Nodes | n8n Docs, GitHub Trigger | Nodes | n8n Docs, GitHub | Nodes | n8n Docs, GitLab Trigger | Nodes | n8n Docs, n8n-docs/docs/integrations/builtin/app-nodes/n8n-nodes-base.gitlab.md at main · n8n-io/n8n-docs · GitHub, Automate GitHub Code Reviews with n8n’s AI Agent | by Anirban Mukherjee ✍️ | Medium, Can AI Be Your Code Reviewer? Building an Automated Merge Request Reviewer with n8n and LLM | by Rerngrit Frank | Medium

Обмеження та критерії завершення

Два ящики з інструментами, що порівнюють підтримку вузлів GitHub та GitLab для отримання diff і публікації коментарів рев'ю.
Ілюстративне порівняння того, наскільки задокументований вузол застосунку покриває потреби цього workflow на кожній платформі.

Скоуп токена, ліміти швидкості запитів та розмір diff — три обмеження, які найімовірніше дадуться взнаки. Обмежуйте облікові дані мінімально: PAT GitHub зі скоупом repo, або токен GitLab із найвужчим скоупом, який дозволяє ваша платформа, нижче широкого скоупу api, який документація n8n описує як простий варіант за замовчуванням.

Ліміти швидкості запитів відрізняються залежно від платформи. API GitHub очікує, що клієнти чекатимуть до часу, вказаного в заголовку скидання ліміту швидкості, перш ніж повторювати спробу, а GitLab спеціально обмежує створення коментарів у issues та merge requests задокументованим лімітом на GitLab.com, окремо від загальних лімітів API; self-managed або виділені інстанси GitLab встановлюють власні ліміти, які документація згадує, не наводячи конкретної цифри. Ми б закладали логіку backoff і максимальну кількість повторних спроб із самого початку, а не додавали б їх уже після того, як workflow перевищить ліміт у продакшні.

Вважайте вправу завершеною, коли справді новий pull чи merge request запускає workflow агента рев'ю коду на n8n, і diff, і конвенції досягають AI Agent, агент повертає структурований результат, який workflow може розпарсити без ручних виправлень, і коментар з'являється в PR чи MR, відображаючи реальний вміст diff.

Sources: GitHub credentials | Nodes | n8n Docs, n8n-docs/docs/integrations/builtin/credentials/gitlab.md at main · n8n-io/n8n-docs · GitHub, Rate limits for the REST API - GitHub Docs, GitLab.com rate limits | GitLab Docs

Рефлексія, усунення несправностей та ескіз пропонованого рішення

Робочий агент рев'ю коду на n8n має відчуватися нудним у найкращому сенсі: він тихо спрацьовує на нових pull requests і залишає один корисний коментар, не більше. Оскільки жоден з туторіалів, на яких базується ця вправа, не документує обробку помилок для невдалого виклику ШІ чи невдалої публікації коментаря, і жодне джерело тут не підтверджує точну схему коментаря, якої очікує вузол кожної платформи, ми б розглядали весь потік як чернетку, яку варто протестувати на репозиторії з низьким трафіком, перш ніж довіряти йому щось важливе. Наше прагматичне рішення: спершу пропустити повністю автоматизовану публікацію і спрямовувати вивід агента в приватний канал протягом тижня, перш ніж дозволити йому коментувати реальні pull requests.

Типові точки збоїв, які варто перевіряти під час тестування, включають надто великий diff, який модель обрізає чи обробляє неправильно, структурований результат, який майже, але не точно відповідає схемі вашого парсера, та виклик публікації коментаря, який мовчки завершується невдачею вже після успішного виклику ШІ.

Якщо хочете попрактикувати базовий патерн — з'єднання вузла AI Agent з одним інструментом із розмовною пам'яттю, перш ніж додавати вебхук-тригер і два зовнішні API поверх нього, — завдання «Твій перший ШІ-агент» будує саме цю комбінацію у вашому власному середовищі n8n.

Sources: AI Agent | Nodes | n8n Docs, Automate GitHub Code Reviews with n8n’s AI Agent | by Anirban Mukherjee ✍️ | Medium, Can AI Be Your Code Reviewer? Building an Automated Merge Request Reviewer with n8n and LLM | by Rerngrit Frank | Medium

Спробуйте на практиці

Твій перший ШІ-агент

Створи AI Agent, який шукає відповіді на твої запитання у Вікіпедії.

Початковий

Спробувати практичне завдання

Для вашої команди

Програми навчання n8n для однієї команди чи відділу – на вашому власному екземплярі n8n, з вашими інструментами й даними.

Навчання для вашої команди

Оцінка навичок n8n

Безкоштовний тест приблизно на 20 хвилин, англійською: 30 запитань у 10 напрямах і рівень від початківця до експерта. На AI Adoption Score – іншому проєкті автора цього сайту.

Дізнатися свій рівень n8n