1.5.0 • Published 5 months ago
danger-plugin-ai-powered-review v1.5.0
danger-plugin-ai-powered-review
A Danger.js plugin that uses Large Language Models (LLMs) to automatically detect code smells and common anti-patterns in your Pull Requests before human review.
Features
- 🤖 Automated code review using LLMs (GPT-4 by default)
- 🔍 Detects code smells and anti-patterns
- ⚡ Reviews only fresh PRs or when explicitly requested
- 🎯 Customizable system prompts for specific review focus
- 🔑 Flexible API key configuration
Installation
# npm
npm install danger-plugin-ai-powered-review --save-dev
# yarn
yarn add danger-plugin-ai-powered-review --dev
Usage
Add this to your dangerfile.js
or dangerfile.ts
:
import aiPoweredReview from 'danger-plugin-ai-powered-review'
// Basic usage with default options
aiPoweredReview({
systemMessage: "Review the code for potential issues and suggest improvements.",
openAIApiKey: "your-api-key" // Or use OPENAI_API_KEY environment variable
})
// Advanced configuration
aiPoweredReview({
model: "gpt-4", // Specify OpenAI model
systemMessage: "Focus on security vulnerabilities and performance issues",
openAIApiKey: process.env.OPENAI_API_KEY,
onlyFreshPRAndExplicitRequests: true, // Only review fresh PRs or when explicitly requested
explicitRequestCommitMessageSubstring: "AI_REVIEW_NEEDED" // Custom trigger phrase
})
Configuration Options
Option | Type | Default | Description |
---|---|---|---|
model | string | "gpt-4" | OpenAI model to use for review |
systemMessage | string | - | Custom prompt for the AI reviewer |
openAIApiKey | string | process.env.OPENAI_API_KEY | OpenAI API key |
onlyFreshPRAndExplicitRequests | boolean | true | Only review fresh PRs or when explicitly requested |
explicitRequestCommitMessageSubstring | string | "AI_REVIEW_NEEDED" | Substring to trigger review in non-fresh PRs |
Triggering Reviews
The plugin will automatically review: 1. Fresh PRs (where the latest commit is made before or at PR creation time) 2. PRs with commits containing "AI_REVIEW_NEEDED" (or your custom trigger phrase)
To explicitly request a review on an existing PR:
git commit -m "refactor: update error handling AI_REVIEW_NEEDED"
Development
- Clone the repository:
git clone https://github.com/sudo-vaibhav/danger-plugin-ai-powered-review.git
cd danger-plugin-ai-powered-review
- Install dependencies:
npm install
- Build the project:
npm run build
- Run tests:
npm test
Available Scripts
npm run build
- Compile TypeScript to JavaScriptnpm test
- Run Jest testsnpm run lint
- Run TSLintnpm run prettier-project
- Format code using Prettiernpm run docs
- Generate documentation
Contributing
See CONTRIBUTING.md for detailed contribution guidelines.
License
MIT License - see LICENSE.md for details.
Changelog
See the GitHub release history.