<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: quanlegia</title>
    <description>The latest articles on DEV Community by quanlegia (@quanlegia).</description>
    <link>https://dev.to/quanlegia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2967571%2F9590f119-b941-4a57-850b-982f2421afd7.jpg</url>
      <title>DEV Community: quanlegia</title>
      <link>https://dev.to/quanlegia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/quanlegia"/>
    <language>en</language>
    <item>
      <title>AI Code Review Action – Automated PR Reviews Using AI (OpenAI, Gemini, ...)</title>
      <dc:creator>quanlegia</dc:creator>
      <pubDate>Tue, 26 Aug 2025 05:06:24 +0000</pubDate>
      <link>https://dev.to/quanlegia/ai-powered-code-review-action-automated-pr-reviews-using-ai-openai-gemini--3a35</link>
      <guid>https://dev.to/quanlegia/ai-powered-code-review-action-automated-pr-reviews-using-ai-openai-gemini--3a35</guid>
      <description>&lt;p&gt;Hey dev.to community!&lt;/p&gt;

&lt;p&gt;I'm excited to announce that I've open-sourced &lt;strong&gt;&lt;a href="https://github.com/legiaquan/code-review-action" rel="noopener noreferrer"&gt;AI-Powered Code Review Action&lt;/a&gt;&lt;/strong&gt; – a GitHub Action that leverages state-of-the-art AI models like Gemini and OpenAI GPT-4 to automate your pull request code reviews.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔌 &lt;strong&gt;Pluggable Architecture:&lt;/strong&gt; Easily add new/experimental AI providers.&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;Smart Filtering:&lt;/strong&gt; Select files for review using flexible include/exclude glob patterns.&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Chunking Support:&lt;/strong&gt; Handles large diffs by splitting them into chunks.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Customizable Rules:&lt;/strong&gt; Add your own review rules and priorities.&lt;/li&gt;
&lt;li&gt;💰 &lt;strong&gt;Cost Tracking:&lt;/strong&gt; Monitor token usage and estimated API costs.&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Secure:&lt;/strong&gt; API keys are never logged; only diffs are sent to AI providers.&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Detailed Reports:&lt;/strong&gt; In-depth review statistics and reporting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Current Provider Support
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;td&gt;gemini-1.5-flash&lt;/td&gt;
&lt;td&gt;Fast, latest from Google&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;✅ Ready&lt;/td&gt;
&lt;td&gt;gpt-4-turbo-preview&lt;/td&gt;
&lt;td&gt;High quality, higher cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HuggingFace&lt;/td&gt;
&lt;td&gt;🚧 Soon&lt;/td&gt;
&lt;td&gt;Various&lt;/td&gt;
&lt;td&gt;Open source models planned&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;p&gt;Create a new workflow at &lt;code&gt;.github/workflows/ai-code-review.yml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AI-Powered Code Review&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;opened&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;synchronize&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;issues&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&lt;/span&gt;
  &lt;span class="na"&gt;pull-requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&lt;/span&gt;
  &lt;span class="na"&gt;contents&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;read&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;ai-review&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AI-Powered Code Review&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;legiaquan/code-review-action@v1.0.1&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini'&lt;/span&gt;
          &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GEMINI_API_KEY }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Easily configurable for more advanced usage!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Contribute 🚀
&lt;/h2&gt;

&lt;p&gt;This is an early-stage project and &lt;strong&gt;all contributions are very welcome&lt;/strong&gt;!&lt;br&gt;&lt;br&gt;
You can help by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding support for new AI models/providers (open source or SaaS)&lt;/li&gt;
&lt;li&gt;Improving tests and CI/CD&lt;/li&gt;
&lt;li&gt;Suggesting or refining review rules&lt;/li&gt;
&lt;li&gt;Fixing bugs, enhancing performance&lt;/li&gt;
&lt;li&gt;Improving documentation, examples, and usability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 See the &lt;a href="https://github.com/legiaquan/code-review-action/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt; for more details&lt;br&gt;&lt;br&gt;
👉 The code is written in &lt;strong&gt;TypeScript&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;👉 See the live example review by the bot on a demo PR: &lt;a href="https://github.com/legiaquan/code-review-action/pull/21#pullrequestreview-3138987873" rel="noopener noreferrer"&gt;#21&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgawvq927vvif5yvz5738.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgawvq927vvif5yvz5738.png" alt=" " width="800" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9bsv64lmuyo5bbj2fkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9bsv64lmuyo5bbj2fkg.png" alt=" " width="800" height="761"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5svx115sr308s7445om.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5svx115sr308s7445om.png" alt=" " width="800" height="760"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re interested in AI-powered dev tools and automation, please &lt;strong&gt;star&lt;/strong&gt; the repository, try integrating it with your projects, and especially &lt;strong&gt;send your pull requests and suggestions&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Thank you for reading and happy contributing!&lt;/p&gt;




&lt;p&gt;&lt;a href="https://github.com/legiaquan/code-review-action" rel="noopener noreferrer"&gt;AI-Powered Code Review Action&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>githubactions</category>
      <category>opensource</category>
      <category>cicd</category>
    </item>
    <item>
      <title>Refactor like a Pro: Enhance Your Code Quality and Maintainability! 🚀</title>
      <dc:creator>quanlegia</dc:creator>
      <pubDate>Sun, 23 Mar 2025 05:28:15 +0000</pubDate>
      <link>https://dev.to/quanlegia/refactor-like-a-pro-enhance-your-code-quality-and-maintainability-2dnc</link>
      <guid>https://dev.to/quanlegia/refactor-like-a-pro-enhance-your-code-quality-and-maintainability-2dnc</guid>
      <description>&lt;p&gt;🚀 &lt;strong&gt;Code Refactoring Techniques in Software Engineering&lt;/strong&gt; 🔥  &lt;/p&gt;

&lt;p&gt;Refactoring is a crucial aspect of software development that enhances code structure while preserving its external behavior. It improves &lt;strong&gt;readability&lt;/strong&gt;, &lt;strong&gt;maintainability&lt;/strong&gt;, and &lt;strong&gt;scalability&lt;/strong&gt;, ensuring long-term success for your projects.  &lt;/p&gt;

&lt;p&gt;🔎 In this in-depth guide, we explore:  &lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Understanding Refactoring&lt;/strong&gt; – When and why should you refactor?&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Core Refactoring Principles&lt;/strong&gt; – Embracing 🏗️ &lt;strong&gt;#DRY&lt;/strong&gt;, 🎯 &lt;strong&gt;#KISS&lt;/strong&gt;, ⚖️ &lt;strong&gt;#YAGNI&lt;/strong&gt;, and other essential principles.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Detecting Code Smells&lt;/strong&gt; – Tackling 🛑 &lt;strong&gt;#LongMethod&lt;/strong&gt;, 📏 &lt;strong&gt;#LargeClass&lt;/strong&gt;, 🔁 &lt;strong&gt;#DuplicatedCode&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Essential Refactoring Techniques&lt;/strong&gt; – Applying 🛠️ &lt;strong&gt;Extract Method&lt;/strong&gt;, ✍️ &lt;strong&gt;Rename Variable&lt;/strong&gt;, and more.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Advanced Approaches&lt;/strong&gt; – Leveraging 🏗️ &lt;strong&gt;Replace Conditional with Polymorphism&lt;/strong&gt;, 🎛️ &lt;strong&gt;Introduce Parameter Object&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Refactoring in Software Architecture&lt;/strong&gt; – Using &lt;strong&gt;Design Patterns&lt;/strong&gt; to enhance system design.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Tools for Refactoring&lt;/strong&gt; – Harnessing &lt;strong&gt;SonarQube&lt;/strong&gt;, &lt;strong&gt;ESLint&lt;/strong&gt;, and smart IDE features.&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Hands-On Practice&lt;/strong&gt; – Real-world exercises to sharpen your skills.&lt;br&gt;&lt;br&gt;
✅ 🎁 &lt;strong&gt;Bonus Content&lt;/strong&gt; – Handling multilingual emails &amp;amp; diverse user types efficiently.  &lt;/p&gt;

&lt;p&gt;📖 Read the full guide here: 👉 &lt;a href="https://github.com/legiaquan/code-refactoring-techniques-in-software-engineering/blob/main/README.md" rel="noopener noreferrer"&gt;Code Refactoring Techniques in Software Engineering&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;If you're committed to writing clean code or looking to elevate your refactoring skills, this guide is a must-read! 🚀  &lt;/p&gt;

&lt;p&gt;💬 What's the most challenging code smell you've encountered in your projects? Let’s discuss in the comments! 👇  &lt;/p&gt;

&lt;h1&gt;
  
  
  ️⃣ ****
&lt;/h1&gt;

</description>
      <category>refactoring</category>
      <category>cleancode</category>
      <category>softwareengineering</category>
      <category>codequality</category>
    </item>
  </channel>
</rss>
