Thanks to visit codestin.com
Credit goes to github.com

Skip to content

AI-powered GitHub Action for automated code review. Supports GPT-5, Claude 4, Gemini 2.5 Pro. AST analysis, linter integration, dependency tracking. Get Principal-level feedback on every PR.

License

Notifications You must be signed in to change notification settings

zxcloli666/AI-Code-Review

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

92 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ€– AI Code Review - GitHub Action with Deep Static Analysis

GitHub stars GitHub forks GitHub issues License: MIT GitHub Action

Automated AI-powered code review for GitHub Pull Requests
GPT-5 β€’ Claude Opus 4 β€’ Gemini 2.5 Pro β€’ O3 β€’ Custom AI Models

πŸš€ Quick Start β€’ ✨ Features β€’ πŸ“– Documentation β€’ πŸ’‘ Examples β€’ 🀝 Contributing


🎯 What is AI Code Review?

AI Code Review is a next-generation GitHub Action that automates pull request reviews using advanced artificial intelligence and deep static code analysis. Get Principal/Staff engineer-level feedback on every PR with AST parsing, linter integration, dependency tracking, and beautiful visual statistics.

πŸ† Why Choose AI Code Review?

βœ… Save 2-4 hours per day on code reviews
βœ… Catch bugs before production with deep analysis
βœ… Consistent quality standards across your team
βœ… Support for 10+ programming languages
βœ… Works with GPT-5, Claude 4, Gemini, O3, and custom AI models
βœ… AST parsing + Linter integration + Dependency analysis


✨ Key Features

🧠 Senior-Level AI Reviews

  • AI analyzes code like a Principal engineer with 15+ years of experience
  • Deep understanding of architecture, performance, and security
  • Provides detailed "why" explanations, not just "what"
  • Recognizes good code and best practices

πŸ” Deep Static Code Analysis

  • AST Parsing: Extract functions, classes, and dependencies from any language
  • Linter Integration: Auto-runs ESLint, Pylint, Rust Clippy, C# Analyzers
  • Dependency Tracking: Maps function calls and dependencies across codebase
  • Complexity Metrics: Cyclomatic complexity and maintainability index
  • Call Graph Analysis: Understand function relationships and breaking changes

🎨 Beautiful Visual Reports

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Files Reviewed    β”‚ 15                                      β”‚
β”‚ Quality Score     β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 85/100             β”‚
β”‚ Issues Found      β”‚ Critical: 0 | Warnings: 2 | Info: 1     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • ASCII charts and sparklines
  • Quality scores and visual statistics
  • Trend analysis over time

πŸ€– Multi-Model Support

  • OpenAI: GPT-5, GPT-5-High, O3, O3-Mini
  • Anthropic: Claude Opus 4, Claude Sonnet 4
  • Google: Gemini 2.5 Pro, Gemini 2.5 Flash
  • Custom Endpoints: Azure OpenAI, AWS Bedrock, local models, or any OpenAI-compatible API

πŸ› οΈ AI Tool System (14 Tools)

AI actively investigates your code using specialized tools:

  • read_file, get_file_diff, analyze_file_ast - Deep file analysis
  • analyze_function_impact - 🎯 Breaking change detector! Shows full context around ALL function call sites
  • find_function_callers, find_function_dependencies - Code navigation
  • analyze_function_complexity - Complexity metrics
  • run_linter - Execute language-specific linters
  • get_commits_list, get_commit_diff, get_file_history - Git context
  • ...and more!

🌍 Multi-Language Support

  • Review Language: Comments in any language (English, Russian, Spanish, French, German, Chinese, etc.)
  • Code Languages: TypeScript, JavaScript, Python, Rust, C#, Go, Java, PHP, Ruby, and more

πŸ“¦ Smart PR Handling

  • Intelligent Chunking: Splits large PRs optimally by module boundaries
  • Handles massive PRs without hitting token limits
  • Silent Mode: Reduce notification spam for your team
  • Auto Labeling: Manages PR labels based on review results

πŸš€ Quick Start

Step 1: Create Workflow File

Create .github/workflows/ai-code-review.yml:

name: AI Code Review

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  ai-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0  # Important for commit history analysis

      - name: Run AI Code Review
        uses: zxcloli666/AI-Code-Review@v1
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

Step 2: Add OpenAI API Key

  1. Get your API key from OpenAI Platform
  2. Go to your repository Settings β†’ Secrets and variables β†’ Actions
  3. Click New repository secret
  4. Name: OPENAI_API_KEY, Value: your-api-key-here

Step 3: Create a Pull Request

That's it! πŸŽ‰ AI Code Review will automatically analyze every new PR.


πŸ“– Configuration Options

Required Inputs

Input Description Default
GITHUB_TOKEN GitHub token (auto-provided by Actions) -
OPENAI_API_KEY OpenAI API key or compatible provider -

Optional Inputs

Input Description Default
OPENAI_API_MODEL AI model (gpt-5, claude-opus-4, o3, etc.) gpt-5
OPENAI_API_BASE_URL Custom endpoint (Azure, Bedrock, local) https://api.openai.com/v1
REVIEW_LANGUAGE Review language (en, ru, es, fr, de, zh, etc.) en
SILENT_MODE Minimize email notifications (true/false) false
MAX_CHUNK_SIZE Max tokens per chunk (adjust for your model) 6000
ENABLE_LINTERS Run language-specific linters true
ENABLE_AST AST analysis for deep code understanding true
ENABLE_DEPENDENCY_ANALYSIS Dependency tracking and call graphs true
SEVERITY_THRESHOLD Min severity to report (info, warning, error) warning

πŸ’‘ Example Reviews

πŸ” Click to see example review output
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                                                                   ┃
┃      πŸ€– π—”π—œ π—–π—’π——π—˜ π—₯π—˜π—©π—œπ—˜π—ͺ - π—”π—‘π—”π—Ÿπ—¬π—¦π—œπ—¦ π—–π—’π— π—£π—Ÿπ—˜π—§π—˜ πŸ€–              ┃
┃                                                                   ┃
┃         ⚑ Powered by Advanced AI & Deep Code Analysis ⚑           ┃
┃                                                                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

## πŸ“‹ Executive Summary

This PR implements a new caching layer to reduce database load and improve 
response times. The implementation is solid with good error handling and test 
coverage. Found 2 performance optimizations and 1 documentation suggestion.

**Verdict**: βœ… APPROVED with minor suggestions

## πŸ“Š Review Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Files Reviewed        β”‚ 15                                  β”‚
β”‚ Total Lines Changed   β”‚ 450 (+320/-130)                     β”‚
β”‚ Commits Analyzed      β”‚ 8                                   β”‚
β”‚ Tools Used            β”‚ 12                                  β”‚
β”‚ Review Time           β”‚ 45s                                 β”‚
β”‚ Quality Score         β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 85/100         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

## 🎯 Issues Summary

Critical  β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  0
Warnings  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  2
Info      β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  1

## πŸ† Highlights

βœ… Well-structured code with clear separation of concerns
βœ… Comprehensive error handling in API endpoints
βœ… Good use of TypeScript types for type safety

## ⚠️ Issues Found

### src/api/handler.ts:45
**Severity:** Warning | **Category:** Performance

The database query inside the loop creates N+1 queries. Consider using 
a single query with JOIN or batch loading.

**Current:**
\`\`\`typescript
for (const user of users) {
  const posts = await db.query('SELECT * FROM posts WHERE user_id = ?', [user.id]);
}
\`\`\`

**Suggested:**
\`\`\`typescript
const posts = await db.query(`
  SELECT p.*, u.id as user_id
  FROM posts p
  JOIN users u ON p.user_id = u.id
  WHERE u.id IN (?)
`, [users.map(u => u.id)]);
\`\`\`

🎯 Advanced Use Cases

Manual Trigger with /review Command

Add the ability to trigger reviews on-demand:

on:
  pull_request:
    types: [opened, synchronize, reopened]
  issue_comment:
    types: [created]

jobs:
  ai-review:
    if: |
      (github.event_name == 'pull_request') ||
      (github.event_name == 'issue_comment' &&
       github.event.issue.pull_request &&
       contains(github.event.comment.body, '/review'))
    # ... rest of the workflow

Now comment /review on any PR to trigger a review!

Use Claude Opus 4

- uses: zxcloli666/AI-Code-Review@v1
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    OPENAI_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
    OPENAI_API_BASE_URL: 'https://api.anthropic.com/v1'
    OPENAI_API_MODEL: 'claude-opus-4'

Use Google Gemini 2.5 Pro

- uses: zxcloli666/AI-Code-Review@v1
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    OPENAI_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
    OPENAI_API_BASE_URL: 'https://generativelanguage.googleapis.com/v1'
    OPENAI_API_MODEL: 'gemini-2.5-pro'
    MAX_CHUNK_SIZE: '12000'  # Gemini supports larger context

Use OpenAI O3 Reasoning Model

- uses: zxcloli666/AI-Code-Review@v1
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    OPENAI_API_MODEL: 'o3-mini'
    MAX_CHUNK_SIZE: '10000'

Reviews in Russian

- uses: zxcloli666/AI-Code-Review@v1
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    REVIEW_LANGUAGE: 'ru'  # Reviews in Russian

Silent Mode (Reduce Notifications)

- uses: zxcloli666/AI-Code-Review@v1
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    SILENT_MODE: 'true'  # Minimize email spam

πŸ› οΈ How It Works

1️⃣ Data Collection

  • Retrieves PR details, branch info, and linked issues
  • Analyzes file types and programming languages
  • Builds commit history timeline

2️⃣ Smart Chunking

  • Splits large PRs intelligently by module boundaries
  • Groups related files together
  • Optimizes token usage for your chosen AI model

3️⃣ Deep Analysis

AI actively investigates code using 14 specialized tools:

File Analysis:

  • read_file - Read complete file content
  • get_file_diff - View specific changes with context
  • analyze_file_ast - Deep AST (Abstract Syntax Tree) parsing

Code Understanding:

  • analyze_function_impact - 🎯 Breaking Change Detector! Shows full context around ALL function call sites
  • find_function_callers - List all places where a function is called
  • find_function_dependencies - Find what a function depends on
  • analyze_function_complexity - Cyclomatic complexity metrics

Quality Tools:

  • run_linter - Execute language-specific linters (ESLint, Pylint, Clippy, etc.)

Git & History:

  • get_commits_list, get_commit_diff, get_file_history - Analyze code evolution

4️⃣ AI Review Process

  • Uses mandatory workflow requiring 4-6 tools minimum per review
  • Analyzes from multiple dimensions: Security, Performance, Architecture, Maintainability
  • Provides senior-level feedback with detailed explanations
  • Categorizes issues by severity (critical, warning, info)

5️⃣ Executive Summary Generation

  • Sends full review to AI for concise summary
  • Creates brief but comprehensive executive summary (under 300 words)
  • Includes: main changes, critical findings, key recommendations, verdict

6️⃣ Publishing Results

  • Posts comprehensive review comment
  • Adds inline comments on specific lines
  • Manages labels automatically
  • Supports silent mode to reduce notification spam

πŸ”₯ Breaking Change Detection Example

When refactoring a function used across multiple files, AI uses analyze_function_impact to show full context around ALL call sites.

Example: Changing calculatePrice(quantity, price) to calculatePrice(options)

// Before:
function calculatePrice(quantity: number, price: number): number {
  return quantity * price;
}

// After:
function calculatePrice(options: { quantity: number; price: number; discount?: number }): number {
  const { quantity, price, discount = 0 } = options;
  return quantity * price * (1 - discount);
}

What AI sees:

## Function Impact Analysis: calculatePrice

**Definition**: `src/utils/pricing.ts:42`
**Parameters**: quantity, price
**Exported**: Yes

### Call Sites

Found **8** call site(s) across **3** file(s)

---

#### `src/components/Cart.tsx` (3 calls)

**Call at line 67**:
β†’ 67 | const total = calculatePrice(item.quantity, item.price);
  68 | setCartTotal(total);

**Call at line 89**:
  88 | items.forEach(item => {
β†’ 89 |   subtotal += calculatePrice(item.qty, item.unitPrice);
  90 | });

---

Total Impact: 8 call site(s) would be affected

Recommendations:
⚠️ Medium impact: 8 call sites - thorough testing recommended
- All callers pass 2 parameters - breaking change confirmed
- Consider backward compatibility or deprecation period

The AI can now intelligently warn that all 8 call sites need updating! 🎯


🌐 Supported Languages

Review Languages (Comments)

English, Russian, Spanish, French, German, Chinese, Japanese, Korean, Portuguese, Italian, Dutch, Polish, Turkish, Arabic, Hindi, and more...

Code Analysis Languages

  • JavaScript/TypeScript - ESLint, AST parsing
  • Python - Pylint, AST parsing
  • Rust - Clippy, AST parsing
  • C# - dotnet format analyzers
  • Go - golangci-lint (custom integration)
  • Java, PHP, Ruby, C++ - Basic analysis
  • And more...

πŸ—οΈ Development

Prerequisites

  • Node.js 20+
  • pnpm 9+

Setup

git clone https://github.com/zxcloli666/AI-Code-Review.git
cd AI-Code-Review
pnpm install
pnpm build

Project Structure

src/
β”œβ”€β”€ index.ts              # Entry point
β”œβ”€β”€ types/                # TypeScript types
β”œβ”€β”€ ai/                   # AI client & prompts
β”‚   β”œβ”€β”€ client.ts         # OpenAI/compatible client
β”‚   β”œβ”€β”€ prompts.ts        # System & user prompts
β”‚   └── tools-registry.ts # 14 AI tools registry
β”œβ”€β”€ analysis/             # Code analysis engines
β”‚   β”œβ”€β”€ ast-parser.ts     # AST parsing (Babel, TS, Acorn)
β”‚   β”œβ”€β”€ linter-runner.ts  # Multi-language linter runner
β”‚   └── call-graph.ts     # Dependency & call graph analysis
β”œβ”€β”€ chunking/             # Smart chunking strategies
β”œβ”€β”€ github/               # GitHub API integration
β”œβ”€β”€ stats/                # Visualization & statistics
└── utils/                # Utilities

Testing

pnpm run build
pnpm run type-check

Create a test repository, set up the workflow, and verify the output.


🀝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'feat: add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open Pull Request

πŸ“ License

MIT License - see LICENSE for details.


πŸ™ Acknowledgments


⭐ Support This Project

If you find AI Code Review useful, please:


Made with ❀️ by zxcloli666

⬆ Back to top


Star History Chart

About

AI-powered GitHub Action for automated code review. Supports GPT-5, Claude 4, Gemini 2.5 Pro. AST analysis, linter integration, dependency tracking. Get Principal-level feedback on every PR.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors