{"id":20849454,"url":"https://github.com/presubmit/ai-reviewer","last_synced_at":"2025-04-09T07:06:16.935Z","repository":{"id":261383649,"uuid":"884134267","full_name":"presubmit/ai-reviewer","owner":"presubmit","description":"Context-aware AI reviewer for Pull Requests. Instant summary, line-by-line comments, title generation and more","archived":false,"fork":false,"pushed_at":"2025-03-17T20:03:54.000Z","size":8660,"stargazers_count":81,"open_issues_count":7,"forks_count":14,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-02T06:06:59.731Z","etag":null,"topics":["ai","anthropic","code-quality","code-review","github-actions","instant","open-source","openai","review-tools","sonnet3-5","summary","typescript","vercel-ai-sdk","zod"],"latest_commit_sha":null,"homepage":"http://presubmit.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/presubmit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-06T07:53:00.000Z","updated_at":"2025-03-28T17:26:58.000Z","dependencies_parsed_at":"2024-11-21T11:29:18.973Z","dependency_job_id":"c7afaeb5-da01-4502-a85c-943cf6d959c1","html_url":"https://github.com/presubmit/ai-reviewer","commit_stats":null,"previous_names":["presubmit/ai-reviewer"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presubmit%2Fai-reviewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presubmit%2Fai-reviewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presubmit%2Fai-reviewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presubmit%2Fai-reviewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/presubmit","download_url":"https://codeload.github.com/presubmit/ai-reviewer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994119,"owners_count":21030050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","anthropic","code-quality","code-review","github-actions","instant","open-source","openai","review-tools","sonnet3-5","summary","typescript","vercel-ai-sdk","zod"],"created_at":"2024-11-18T03:05:09.315Z","updated_at":"2025-04-09T07:06:16.910Z","avatar_url":"https://github.com/presubmit.png","language":"TypeScript","funding_links":[],"categories":["📝 DeepReview Agent"],"sub_categories":["Software Code Review"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\n    Presubmit - AI Code Reviewer\n  \u003c/h1\u003e\n  \n  \u003cp\u003e\u003cem\u003eContext-aware, intelligent and instant PR reviews\u003c/em\u003e\u003c/p\u003e\n\n[![GitHub Stars](https://img.shields.io/github/stars/presubmit/ai-reviewer?style=social)](https://github.com/presubmit/ai-reviewer/stargazers) \u0026nbsp;\n[![GitHub last commit](https://img.shields.io/github/last-commit/presubmit/ai-reviewer)](https://github.com/presubmit/ai-reviewer/commits) \u0026nbsp;\n[![GitHub License](https://img.shields.io/github/license/presubmit/ai-reviewer?color=yellow)](https://github.com/presubmit/ai-reviewer/blob/main/LICENSE) \u0026nbsp;\n[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/presubmitai?style=social)](https://x.com/intent/follow?screen_name=presubmitai)\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\nOptimize your code review process with Presubmit's AI Code Reviewer that catches bugs, suggests improvements, and provides meaningful summary - all before human reviewers take their first look.\n\n- 🔍 **Instant, In-depth PR Analysis**: Catches bugs, security issues, and optimization opportunities in real-time\n- 🎯 **Focus on What Matters**: Let AI handle the basics while humans focus on architecture and complex logic\n- ✨ **Title and description generation**: Save time by having the AI generate meaningful title and description for your PR\n- 💬 **Interactive \u0026 Smart**: Responds to questions and generates code suggestions right in your PR\n- ⚡ **Lightning-Fast Setup**: Up and running in 2 minutes with GitHub Actions\n\n\u003cbr/\u003e\n\n\u003e 🤝 **Note**: Presubmit is designed to complement human reviewers, not replace them. It helps catch security issues and bugs early on while also providing context about the overall change, making the human review process more efficient.\n\n\u003cbr/\u003e\n\n## See it in Action\n\n\u003e 💡 [View full example PR review](https://github.com/presubmit/ebank-backend/pull/13)\n\nAutomated analysis detects potential issues and provides actionable insights:\n\n\u003cdiv align=\"left\"\u003e\n  \u003ca href=\"https://github.com/presubmit/ebank-backend/pull/13\"\u003e\n    \u003cimg src=\"https://github.com/presubmit/ai-reviewer/blob/main/assets/review_example_3.png?raw=true\" alt=\"AI Code Review example\" width=\"650\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\nInteractive discussions help clarify implementation details:\n\n\u003cdiv align=\"left\"\u003e\n  \u003ca href=\"https://github.com/presubmit/ebank-backend/pull/13\"\u003e\n    \u003cimg src=\"https://github.com/presubmit/ai-reviewer/blob/main/assets/comment_example.png?raw=true\" alt=\"AI comment thread example\" width=\"650\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n## Usage\n\n### Step 1: Add LLM_API_KEY secret\n\n1. Go to your repository's Settings \u003e Secrets and Variables \u003e Actions\n2. Click \"New repository secret\"\n3. Add a new secret with:\n   - Name: `LLM_API_KEY`\n   - Value: Your API key from one of these providers:\n     - [Anthropic Console](https://console.anthropic.com/) (Claude)\n     - [OpenAI API](https://platform.openai.com/api-keys) (GPT-4)\n     - [Google AI Studio](https://aistudio.google.com/app/apikeys) (Gemini)\n\n### Step 2: Create GitHub Workflow\n\nAdd this GitHub Action to your repository by creating `.github/workflows/presubmit.yml`:\n\n```yaml\nname: Presubmit.ai\n\npermissions:\n  contents: read\n  pull-requests: write\n  issues: write\n\non:\n  pull_request_target:\n    types: [opened, synchronize]\n  pull_request_review_comment:\n    types: [created]\n\njobs:\n  review:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Check required secrets\n        run: |\n          if [ -z \"${{ secrets.LLM_API_KEY }}\" ]; then\n            echo \"Error: LLM_API_KEY secret is not configured\"\n            exit 1\n          fi\n      - uses: presubmit/ai-reviewer@latest\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          LLM_API_KEY: ${{ secrets.LLM_API_KEY }}\n          LLM_MODEL: \"claude-3-5-sonnet-20241022\"\n```\n\nThe action requires:\n\n- `GITHUB_TOKEN`: Automatically provided by GitHub Actions\n- `LLM_API_KEY`: Your API key (added in step 1)\n- `LLM_MODEL`: Which LLM model to use. Make sure the model is [supported](https://github.com/presubmit/ai-reviewer/blob/main/src/ai.ts) and matches the `LLM_API_KEY`.\n\n\u003cbr/\u003e\n\n## Features\n\n### 🤖 Smart Reviews\n\n- **In-depth Analysis**: Line-by-line review with context-aware suggestions\n- **Auto PR Summary**: Concise, meaningful summaries of changes\n- **Code Quality**: Catches bugs, anti-patterns, and style issues\n- **Interactive**: Responds to questions and clarifications in comments\n\n### 🛡️ Security \u0026 Quality\n\n- **Vulnerability Detection**: Catches security issues and leaked\n  secrets\n- **Best Practices**: Enforces coding standards and security\n  guidelines\n- **Performance**: Identifies potential bottlenecks and optimizations\n- **Documentation**: Ensures proper code documentation and clarity\n\n### ⚙️ Configurable\n\n- Mention `@presubmit` in PR title for auto-generation\n- Disable reviews with `@presubmit ignore` comment\n- Configurable review depth and focus areas\n- Customizable rules and preferences\n\n### ⚡ Seamless Integration\n\n- 2-minute setup with GitHub Actions\n- Works with all major LLM providers (Claude, GPT-4, Gemini)\n- Instant feedback on every PR\n- Zero maintenance required\n\n\u003cbr/\u003e\n\n## Show Your Support! ⭐\n\nIf you find Presubmit helpful in improving the review process:\n\n- **Star this repository** to show your support and help others discover it\n- Share your experience by creating a [GitHub Issue](https://github.com/presubmit/ai-reviewer/issues)\n- Follow me on [X/Twitter](https://x.com/bdstanga) for updates\n- Consider [contributing](CONTRIBUTING.md) to make it even better\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpresubmit%2Fai-reviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpresubmit%2Fai-reviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpresubmit%2Fai-reviewer/lists"}