A comprehensive GitHub Action that provides intelligent code reviews using multiple AI providers with framework-specific expertise.
- Multi-AI Provider Support: Choose from OpenAI, Claude, Gemini, or DeepSeek
- Framework-Specific Reviews: Specialized prompts for Laravel, Vue/Nuxt, and React/Next.js
- Smart PR Analysis: Reviews only added lines with contextual understanding
- Confidence Scoring: Risk assessment and confidence levels for each review
- Professional Comments: Evidence-based feedback following industry best practices
inputs:
ai_provider:
description: 'AI provider to use for code review'
required: true
# Options: 'openai', 'claude', 'gemini', 'deepseek'
framework:
description: 'Framework for specialized code review'
required: true
# Options: 'laravel', 'vue', 'nuxt', 'react', 'nextjs'
github_token:
description: 'GitHub token for PR access'
required: true
Provide the API key corresponding to your chosen ai_provider
:
# For OpenAI
openai_api_key:
description: 'OpenAI API key'
required: false
openai_assistant_id:
description: 'OpenAI Assistant ID'
required: true # Required when ai_provider is 'openai'
# For Claude
claude_api_key:
description: 'Anthropic Claude API key'
required: false
# For Gemini
gemini_api_key:
description: 'Google Gemini API key'
required: false
# For DeepSeek
deepseek_api_key:
description: 'DeepSeek API key'
required: false
name: Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
runs-on: ubuntu-latest
steps:
- name: AI Code Review
uses: updivision/ultra-dev@v1
with:
ai_provider: 'openai'
framework: 'laravel'
github_token: ${{ secrets.GITHUB_TOKEN }}
openai_api_key: ${{ secrets.OPENAI_API_KEY }}
openai_assistant_id: ${{ secrets.OPENAI_ASSISTANT_ID }}
name: Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
runs-on: ubuntu-latest
steps:
- name: AI Code Review
uses: updivision/ultra-dev@v1
with:
ai_provider: 'claude'
framework: 'react'
github_token: ${{ secrets.GITHUB_TOKEN }}
claude_api_key: ${{ secrets.CLAUDE_API_KEY }}
name: Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
runs-on: ubuntu-latest
steps:
- name: AI Code Review
uses: updivision/ultra-dev@v1
with:
ai_provider: 'gemini'
framework: 'nuxt'
github_token: ${{ secrets.GITHUB_TOKEN }}
gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
name: Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
runs-on: ubuntu-latest
steps:
- name: AI Code Review
uses: updivision/ultra-dev@v1
with:
ai_provider: 'deepseek'
framework: 'nextjs'
github_token: ${{ secrets.GITHUB_TOKEN }}
deepseek_api_key: ${{ secrets.DEEPSEEK_API_KEY }}
When using this action in your workflows, you can choose between different versioning strategies:
uses: updivision/ultra-dev@v1
- Automatically gets: Latest features and bug fixes within v1.x.x
- Best for: Most users who want convenience and latest improvements
- Updates: Automatically receives compatible updates
uses: updivision/[email protected]
- Guarantees: Exact same behavior every time
- Best for: Production environments requiring strict reproducibility
- Updates: Manual - you control when to update
Semantic versioning encourages precise tags like v1.0.0
, v1.0.1
, etc., that never change once published.
But you might want a convenience tag like v1
that always points to the latest v1.x.x
release.
This lets you pick either:
- A fixed version (e.g.,
v1.0.1
) to ensure stability, or - A moving version (e.g.,
v1
) to get the latest compatible update without changing your workflow
- Visit OpenAI Platform
- Create an API key in your dashboard
- Create a custom Assistant and note the Assistant ID
- Visit Anthropic Console
- Generate an API key
- Ensure you have access to Claude-3 models
- Visit Google AI Studio
- Create a new API key
- Enable the Generative AI API
- Visit DeepSeek Platform
- Create an account and generate API key
- Access DeepSeek Coder models
Add your API keys as repository secrets:
- Go to your repository β Settings β Secrets and variables β Actions
- Add the following secrets:
OPENAI_API_KEY
(if using OpenAI)OPENAI_ASSISTANT_ID
(required for OpenAI)CLAUDE_API_KEY
(if using Claude)GEMINI_API_KEY
(if using Gemini)DEEPSEEK_API_KEY
(if using DeepSeek)
Important: You must configure your repository to grant the necessary permissions to the GITHUB_TOKEN.
- Go to your repository β Settings β Actions β General
- Scroll down to Workflow permissions
- Select "Read and write permissions"
- Click Save
The action requires these specific permissions:
contents: read
- To access PR filespull-requests: write
- To post review commentsissues: write
- To update PR status
Without proper permissions, the action will fail to post review comments on your pull requests.
- Create a new provider class in
src/providers/
- Implement the base provider interface
- Add configuration in
action.yml
- Update documentation
- Create framework-specific prompts in
src/prompts/
- Add framework validation in
src/config/settings.py
- Update documentation and examples
This project is licensed under the MIT License - see the LICENSE file for details.
- Framework-specific best practices derived from official documentation
- AI provider integrations following their respective best practices
- Community feedback and contributions