گردش کار بازبین کد GitHub با هوش مصنوعی

گردش کار بازبین کد GitHub با هوش مصنوعی

9 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۶

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 4477 · منبع: کاتالوگ Axeto

دستیار دانش مبتنی بر هوش مصنوعی: بازبین کد GitHub

این گردش کار از هوش مصنوعی برای خودکارسازی بازبینی کد برای مخازن GitHub استفاده می‌کند. این گردش کار با ارسال کد فعال می‌شود، تغییرات را با استفاده از یک عامل هوش مصنوعی تجزیه و تحلیل می‌کند و خلاصه دقیقی از بازبینی را از طریق ایمیل ارسال می‌کند. این راه حل GitHub، مدل‌های زبان بزرگ سازگار با OpenAI (از طریق Groq) و Gmail را برای یک تجربه توسعه‌دهنده یکپارچه ادغام می‌کند.

این گردش کار و موارد دیگر را در کاتالوگ n8n در Axeto.ai کاوش کنید.

نمای کلی گردش کار

این گردش کار فرآیند بازبینی کد را برای مخازن GitHub خودکار می‌کند. پس از رویداد push، جزئیات commit را بازیابی می‌کند، diffهای کد را برای خوانایی قالب‌بندی می‌کند، آن‌ها را برای تجزیه و تحلیل به یک عامل هوش مصنوعی ارسال می‌کند و در نهایت یک خلاصه جامع بازبینی را ایمیل می‌کند.

اجزای کلیدی:

  • یکپارچه‌سازی GitHub: مخازن خاص را برای رویدادهای push نظارت می‌کند.
  • تجزیه و تحلیل کد با هوش مصنوعی: از یک عامل هوش مصنوعی که توسط یک مدل زبان (مانند Groq) پشتیبانی می‌شود برای شناسایی مشکلات بالقوه در تغییرات کد استفاده می‌کند.
  • اعلان‌های ایمیلی: گزارش‌های بازبینی تولید شده توسط هوش مصنوعی را مستقیماً به صندوق ورودی شما تحویل می‌دهد.

جزئیات گردش کار

این بخش هر بلوک منطقی و گره‌های n8n مورد استفاده را شرح می‌دهد.

۱. فعال‌سازی رویداد GitHub و استخراج داده

این مرحله اولیه رویدادهای push را از GitHub دریافت کرده و اطلاعات ضروری commit را استخراج می‌کند.

  • گره‌ها:

* GitHub Trigger

* Set (برای تجزیه داده)

  • جزئیات:

* GitHub Trigger:

* نوع: GitHub Trigger

* عملکرد: به رویدادهای push در یک مخزن GitHub پیکربندی شده گوش می‌دهد.

* پیکربندی: به اعتبارنامه‌های GitHub و مشخص کردن مالک و نام مخزن نیاز دارد.

* خروجی: بار داده وب‌هوک خام حاوی جزئیات commit.

* نکته: "فیلدها را برای گوش دادن به پروژه‌های خاص سفارشی کنید."

* Set (Parser):

* نوع: Set

* عملکرد: بار داده وب‌هوک ورودی را تجزیه می‌کند تا نقاط داده کلیدی مانند شناسه مخزن، نام، مالک، شناسه commit و لیست فایل‌های اضافه شده، حذف شده و اصلاح شده را استخراج و ساختار دهد. این داده‌ها را برای فراخوانی‌های API بعدی آماده می‌کند.

* عبارات: از عباراتی مانند {{ $json.body.repository.id }} برای نگاشت داده‌ها استفاده می‌کند.

۲. دریافت اطلاعات دقیق commit

این بلوک داده‌های جامع commit را از API GitHub بازیابی می‌کند.

  • گره‌ها:

* HTTP Request

  • جزئیات:

* HTTP Request:

* نوع: HTTP Request

* عملکرد: با استفاده از شناسه‌های مخزن و commit استخراج شده، یک درخواست GET به API GitHub برای دریافت اطلاعات دقیق commit، از جمله diffهای کد، ارسال می‌کند.

* پیکربندی: URL API را به صورت پویا می‌سازد (به عنوان مثال، https://api.github.com/repos/{{owner}}/{{repo}}/commits/{{commit_id}}). به احراز هویت API GitHub نیاز دارد.

۳. قالب‌بندی کد برای تجزیه و تحلیل هوش مصنوعی

این مرحله تغییرات کد خام را به فرمت HTML قابل خواندن توسط انسان و مناسب برای هوش مصنوعی تبدیل می‌کند.

  • گره‌ها:

* Code

  • جزئیات:

* Code (HTML Formatter):

* نوع: Code

* عملکرد: داده‌های پچ خام را از API GitHub پردازش می‌کند. افزوده‌ها (سبز) و حذف‌ها (قرمز) را رنگی می‌کند و diffها را در بلوک‌های HTML ساختار می‌دهد. این خروجی قالب‌بندی شده برای تجزیه و تحلیل عامل هوش مصنوعی و برای گزارش ایمیل نهایی حیاتی است.

* خروجی: یک شی JSON حاوی ویژگی htmlOutput با HTML قالب‌بندی شده.

۴. بازبینی کد مبتنی بر هوش مصنوعی

در اینجا، تغییرات کد قالب‌بندی شده به یک عامل هوش مصنوعی برای بازبینی ارسال می‌شود.

  • گره‌ها:

* LangChain Agent

* LLM Chat (مانند Groq)

* Memory Buffer

  • جزئیات:

* LangChain Agent:

* نوع: LangChain Agent

* عملکرد: به عنوان بازبین اصلی هوش مصنوعی عمل می‌کند. diffهای کد قالب‌بندی شده را دریافت کرده و از یک مدل زبان و حافظه پیکربندی شده برای تجزیه و تحلیل تغییرات استفاده می‌کند. اعلان به گونه‌ای طراحی شده است که بازخورد خاصی را ارائه دهد، مانند شناسایی مشکلات عملکردی، سبکی، امنیتی یا خوانایی، یا تأیید اینکه کد تمیز است.

* پیکربندی: با یک LLM (مانند مدل چت Groq) ادغام می‌شود و از حافظه برای زمینه استفاده می‌کند.

* نکته: "عامل هوش مصنوعی را سفارشی کنید: اعلان را برای تمرکز بر جنبه‌های مختلف بازبینی به‌روز کنید."

* LLM Chat (Groq):

* نوع: LLM Chat

* عملکرد: قابلیت‌های مدل زبان را برای عامل هوش مصنوعی فراهم می‌کند. این مثال از یک مدل Groq (مانند llama-3.1-8b-instant) استفاده می‌کند.

* پیکربندی: به اعتبارنامه‌های API Groq نیاز دارد.

* نکته: "LLM را سفارشی کنید: در صورت نیاز با سایر LLMهای پشتیبانی شده جایگزین کنید."

* Memory Buffer:

* نوع: Memory Buffer

* عملکرد: زمینه مکالمه را برای عامل هوش مصنوعی حفظ می‌کند و به آن اجازه می‌دهد تا تعاملات قبلی را در یک جلسه به خاطر بسپارد.

۵. کامپایل و ارسال ایمیل بازبینی

مرحله نهایی بازخورد هوش مصنوعی را با کد قالب‌بندی شده ترکیب کرده و آن را از طریق ایمیل ارسال می‌کند.

  • گره‌ها:

* Code (برای کامپایل خروجی)

* Gmail

* NoOp (پایان گردش کار)

  • جزئیات:

* Code (Output Compiler):

* نوع: Code

* عملکرد: htmlOutput (diffهای کد قالب‌بندی شده) و بازبینی عامل هوش مصنوعی (output) را در یک رشته HTML منسجم برای بدنه ایمیل ترکیب می‌کند.

* Gmail:

* نوع: Gmail

* عملکرد: محتوای HTML کامپایل شده را به عنوان یک ایمیل به گیرنده مشخص شده ارسال می‌کند.

* پیکربندی: به اعتبارنامه‌های API Gmail، آدرس گیرنده و موضوع ایمیل نیاز دارد.

* نکته: "به‌روزرسانی ایمیل: گیرنده یا سبک ایمیل را تغییر دهید."

* NoOp (End Workflow):

* نوع: NoOp

* عملکرد: یک گره پایانی که نشان‌دهنده تکمیل موفقیت‌آمیز گردش کار است.

جدول خلاصه

نام گرهنوع گرهنقشورودی ازخروجی بهنکات
GitHub TriggerGitHub Triggerبه رویدادهای push GitHub گوش می‌دهد-Set (Parser)"فیلدها را برای گوش دادن به پروژه‌های خاص سفارشی کنید."
Set (Parser)Setداده‌های commit را استخراج و ساختار می‌دهدGitHub TriggerHTTP Request
HTTP RequestHTTP Requestاطلاعات دقیق commit را از GitHub دریافت می‌کندSet (Parser)Code (Formatter)
Code (Formatter)Codediffهای کد را به HTML قالب‌بندی می‌کندHTTP RequestLangChain Agent
LangChain AgentLangChain Agentبازبینی کد هوش مصنوعی را انجام می‌دهدCode (Formatter), Memory, LLMCode (Compiler)"عامل هوش مصنوعی را سفارشی کنید: اعلان را برای تمرکز بر جنبه‌های مختلف بازبینی به‌روز کنید."
LLM Chat (Groq)LLM Chatمدل زبان را فراهم می‌کند-LangChain Agent"LLM را سفارشی کنید: در صورت نیاز با سایر LLMهای پشتیبانی شده جایگزین کنید."
Memory BufferMemory Bufferزمینه جلسه هوش مصنوعی را حفظ می‌کند-LangChain Agent
Code (Compiler)Codeکد قالب‌بندی شده و بازبینی هوش مصنوعی را ترکیب می‌کندLangChain AgentGmail
GmailGmailایمیل بازبینی را ارسال می‌کندCode (Compiler)NoOp (End Workflow)"به‌روزرسانی ایمیل: گیرنده یا سبک ایمیل را تغییر دهید."
NoOp (End Workflow)NoOpپایان گردش کار را مشخص می‌کندGmail-

نحوه بازسازی این گردش کار

برای ساخت این گردش کار بازبینی کد مبتنی بر هوش مصنوعی از ابتدا در n8n، مراحل زیر را دنبال کنید:

1. GitHub Trigger:

* یک گره GitHub Trigger اضافه کنید.

* اعتبارنامه‌های GitHub خود را پیکربندی کنید.

* صاحب و نام مخزن را مشخص کنید.

* نوع رویداد را روی push تنظیم کنید.

2. استخراج داده (گره Set):

* یک گره Set اضافه کنید.

* فیلدهای زیر را از JSON وب‌هوک ورودی نگاشت کنید:

* body.repository.id

* body.repository.name

* body.repository.owner.name

* body.head_commit.id

* body.head_commit.added

* body.head_commit.removed

* body.head_commit.modified

3. دریافت جزئیات commit (گره HTTP Request):

* یک گره HTTP Request اضافه کنید.

* متد را روی GET تنظیم کنید.

* URL را به صورت پویا با استفاده از عبارات بسازید: https://api.github.com/repos/{{$json.body.repository.owner.name}}/{{$json.body.repository.name}}/commits/{{$json.body.head_commit.id}}

* از همان اعتبارنامه‌های GitHub که برای تریگر استفاده شده، استفاده کنید.

4. قالب‌بندی diffهای کد (گره Code):

* یک گره Code اضافه کنید.

* کد جاوا اسکریپت را برای تجزیه داده‌های پچ از خروجی گره قبلی بنویسید.

* منطقی را برای رنگی کردن افزوده‌ها و حذف‌ها و ساختاردهی diffها در یک رشته HTML پیاده‌سازی کنید.

* اطمینان حاصل کنید که خروجی یک شی JSON با ویژگی htmlOutput است.

5. بازبینی کد هوش مصنوعی (گره‌های LangChain):

* یک گره LLM Chat (مانند Groq) اضافه کنید. کلید API و مدل خود را پیکربندی کنید.

* یک گره Memory Buffer اضافه کنید. یک کلید جلسه پیکربندی کنید.

* یک گره LangChain Agent اضافه کنید.

* گره Code (formatter)، گره LLM Chat و گره Memory Buffer را به عنوان ورودی متصل کنید.

* یک اعلان دقیق بنویسید که به عامل در مورد نحوه انجام بازبینی کد و فرمت خروجی آن (به عنوان مثال، HTML) دستور دهد.

6. کامپایل و ارسال ایمیل (گره‌های Code و Gmail):

* یک گره Code دیگر اضافه کنید.

* جاوا اسکریپت بنویسید تا htmlOutput از فرمت‌کننده کد و خروجی بازبینی عامل هوش مصنوعی را در یک رشته HTML واحد ترکیب کند.

* یک گره Gmail اضافه کنید.

* اعتبارنامه‌های Gmail خود را پیکربندی کنید.

* گیرنده، موضوع را تنظیم کنید و از HTML کامپایل شده از گره Code قبلی به عنوان بدنه پیام استفاده کنید.

7. پایان گردش کار:

* یک گره NoOp اضافه کرده و گره Gmail را به آن متصل کنید تا پایان گردش کار را نشان دهد.

گردش کار خود را ذخیره و فعال کنید تا شروع به دریافت بازبینی‌های کد مبتنی بر هوش مصنوعی در pushهای GitHub خود کنید.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چگونه کار می‌کند؟

این گردش کار با دریافت رویداد push در GitHub آغاز می‌شود. سپس تغییرات کد را استخراج کرده، آن‌ها را قالب‌بندی می‌کند، با استفاده از یک عامل هوش مصنوعی (مانند مدل‌های سازگار با OpenAI از طریق Groq) تجزیه و تحلیل می‌کند و در نهایت یک خلاصه بازبینی را از طریق ایمیل ارسال می‌کند.

چه مدل‌های زبانی برای بازبینی کد پشتیبانی می‌شوند؟

این گردش کار از مدل‌های زبان بزرگ (LLMs) سازگار با OpenAI پشتیبانی می‌کند. در مثال ارائه شده، از Groq برای دسترسی به این مدل‌ها استفاده شده است.

چگونه می‌توانم این گردش کار را برای مخزن GitHub خود تنظیم کنم؟

شما باید گردش کار را در n8n وارد کرده و گره GitHub Trigger را با اعتبارنامه‌های GitHub و جزئیات مخزن خود پیکربندی کنید. همچنین نیاز به تنظیمات مربوط به اتصال به مدل زبان و سرویس ایمیل (مانند Gmail) خواهید داشت.

چه نوع بازخوردی از هوش مصنوعی دریافت خواهم کرد؟

شما خلاصه‌ای جامع از بازبینی کد دریافت خواهید کرد که شامل شناسایی مشکلات بالقوه، پیشنهادات بهبود و تجزیه و تحلیل تغییرات کد است. این گزارش به صورت HTML قالب‌بندی شده و از طریق ایمیل ارسال می‌شود.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.