lazyPR
AI-powered GitHub Action that generates intelligent PR summaries and risk assessments directly from code diffs
Overview
lazyPR is an AI-powered GitHub Action that rescues your repository from “lazy” documentation. Unlike most AI summarizers that only look at commit messages, lazyPR analyzes the actual code changes to generate comprehensive, context-aware PR summaries.
The Problem
Most development teams face a common set of challenges with pull requests:
- Vague descriptions that force reviewers to manually inspect diffs
- Ghost commits where code doesn’t match the commit message claims
- No risk assessment to help prioritize which PRs need the most scrutiny
- Inconsistent documentation across different team members
These problems compound as teams grow. A reviewer might spend 10-15 minutes just understanding what a PR does before they can actually review the code quality.
How lazyPR Solves This
1. Intelligent Summaries
lazyPR analyzes the actual diff content using multiple AI providers (OpenAI, Anthropic, or Gemini) to generate context-aware summaries. It doesn’t just parrot commit messages—it understands the code changes.
2. Ghost Commit Detection
This feature compares commit messages against the actual code changes in those commits. If someone writes “fixed authentication” but the diff shows they actually changed database schemas, lazyPR flags it as a potential ghost commit.
3. Automatic Risk Assessment
Every PR gets an impact score (0-100) and a risk label:
- Low Risk: Minor changes, documentation updates
- Medium Risk: Feature additions, refactoring
- High Risk: Database changes, auth modifications, critical bug fixes
4. Bring Your Own Key
Unlike some services that charge per PR, lazyPR uses your own API keys. You have full control over costs and can choose which AI provider works best for your needs.
Technical Architecture
lazyPR is built as a Bun monorepo with three main packages:
apps/github-action: The entry point that integrates with GitHub Actionspackages/core: Diff fetching, sanitization, token management, and ghost detectionpackages/ai-engine: LLM orchestration, prompt engineering, and response parsing
The architecture prioritizes:
- Speed: Quick analysis even for large PRs
- Accuracy: Multiple providers for redundancy and best results
- Privacy: Your code stays in your infrastructure
- Flexibility: Configurable templates and custom prompts
Getting Started
Adding lazyPR to your repository takes less than 5 minutes:
# .github/workflows/lazypr.yml
name: lazyPR Summary
on:
pull_request:
types: [opened, synchronize]
jobs:
summarize:
runs-on: ubuntu-latest
steps:
- uses: elvis-ndubuisi/lazypr@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
api_key: ${{ secrets.OPENAI_API_KEY }}
provider: openai
template: default
New in v1.2.0
Batch 1 adds four major features:
- Ticket Detection - Auto-link JIRA, GitHub, and Linear tickets
- Title Enhancement - Fix vague PR titles automatically
- Custom Placeholders - Dynamic templates for team workflows
- PR Size Detection - Warn on oversized PRs
Documentation
- User Guide - Core features and setup
- Custom Templates - Template system and placeholders
- Architecture - Technical overview
- Feature Guides: Ticket Detection · Title Enhancement · Custom Placeholders · PR Size Detection
Built with TypeScript, Bun, and a lot of coffee.