{"id":45656362,"url":"https://github.com/caelicode/code-review-action","last_synced_at":"2026-06-08T03:01:08.704Z","repository":{"id":340293718,"uuid":"1165388328","full_name":"caelicode/code-review-action","owner":"caelicode","description":"AI-powered PR code review using Claude — inline comments, configurable focus areas, zero noise","archived":false,"fork":false,"pushed_at":"2026-03-23T11:37:41.000Z","size":359,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-24T09:08:31.745Z","etag":null,"topics":["ai-code-review","anthropic","automation","claude","code-review","developer-tools","devops","github-action","github-actions","llm","pull-request","static-analysis"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/caelicode-code-review","language":"JavaScript","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/caelicode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-24T05:37:36.000Z","updated_at":"2026-03-16T11:39:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/caelicode/code-review-action","commit_stats":null,"previous_names":["caelicode/code-review-action"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/caelicode/code-review-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelicode%2Fcode-review-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelicode%2Fcode-review-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelicode%2Fcode-review-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelicode%2Fcode-review-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caelicode","download_url":"https://codeload.github.com/caelicode/code-review-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelicode%2Fcode-review-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34046003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-code-review","anthropic","automation","claude","code-review","developer-tools","devops","github-action","github-actions","llm","pull-request","static-analysis"],"created_at":"2026-02-24T08:38:47.523Z","updated_at":"2026-06-08T03:01:08.692Z","avatar_url":"https://github.com/caelicode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CaeliCode Code Review\n\n[![CI](https://github.com/caelicode/code-review-action/actions/workflows/ci.yml/badge.svg)](https://github.com/caelicode/code-review-action/actions/workflows/ci.yml)\n[![Release](https://github.com/caelicode/code-review-action/actions/workflows/release.yml/badge.svg)](https://github.com/caelicode/code-review-action/actions/workflows/release.yml)\n\nAI-powered pull request review using Claude. Posts inline comments on bugs, security issues, and logic errors — skips the noise.\n\n## Features\n\n- **Signal over noise** — only flags genuine issues (bugs, security, logic errors), not style nitpicks\n- **Inline comments** — posts directly on the relevant lines in your PR, with severity badges\n- **Configurable focus** — choose what to review: `bugs`, `security`, `logic`, `performance`, `error-handling`\n- **Severity filter** — set minimum severity (`low`, `medium`, `high`) to control comment volume\n- **File filtering** — include/exclude files by glob pattern, auto-skips lockfiles and dist/\n- **Cost control** — `max_files` limit prevents expensive reviews on large PRs\n- **PR summary** — optional summary comment with overall assessment\n\n## Quick Start\n\n```yaml\nname: Code Review\n\non:\n  pull_request:\n    types: [opened, synchronize]\n\npermissions:\n  contents: read\n  pull-requests: write\n\njobs:\n  review:\n    runs-on: ubuntu-latest\n    steps:\n      - name: AI Code Review\n        uses: caelicode/code-review-action@v1\n        with:\n          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n```\n\n## Usage Examples\n\n### Security-focused review\n\n```yaml\n- name: Security Review\n  uses: caelicode/code-review-action@v1\n  with:\n    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n    review_scope: security\n    severity: high\n```\n\n### Review only backend code\n\n```yaml\n- name: Backend Review\n  uses: caelicode/code-review-action@v1\n  with:\n    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n    include_paths: 'src/**,lib/**'\n    exclude_paths: '*.test.js,*.spec.ts,__tests__/**'\n```\n\n### Use a different Claude model\n\n```yaml\n- name: Code Review (Opus)\n  uses: caelicode/code-review-action@v1\n  with:\n    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n    model: claude-opus-4-5-20251101\n    max_tokens: 8192\n```\n\n### Capture review output\n\n```yaml\n- name: Code Review\n  id: review\n  uses: caelicode/code-review-action@v1\n  with:\n    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n\n- name: Check results\n  run: |\n    echo \"Comments: ${{ steps.review.outputs.comments_count }}\"\n    echo \"Files: ${{ steps.review.outputs.files_reviewed }}\"\n    echo \"Summary: ${{ steps.review.outputs.summary }}\"\n```\n\n## Inputs\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `anthropic_api_key` | Anthropic API key | Yes | — |\n| `model` | Claude model to use | No | `claude-sonnet-4-5-20250929` |\n| `max_tokens` | Max response tokens | No | `4096` |\n| `review_scope` | Focus areas (comma-separated) | No | `bugs,security,logic` |\n| `severity` | Minimum severity: `low`, `medium`, `high` | No | `medium` |\n| `include_paths` | Glob patterns for files to review | No | all changed files |\n| `exclude_paths` | Glob patterns for files to skip | No | `*.lock,*.min.js,...` |\n| `max_files` | Skip if PR has more than N files (0 = no limit) | No | `20` |\n| `post_summary` | Post a summary comment on the PR | No | `true` |\n| `github_token` | GitHub token for posting comments | No | `${{ github.token }}` |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `comments_count` | Number of inline comments posted |\n| `summary` | Review summary text |\n| `files_reviewed` | Number of files reviewed |\n\n## Comment Severity Levels\n\nEach inline comment is prefixed with a severity badge:\n\n| Badge | Level | When used |\n|-------|-------|-----------|\n| 🔴 | **Critical** | Security vulnerabilities, data loss, crashes |\n| 🟡 | **Warning** | Logic errors, race conditions, edge cases |\n| 🔵 | **Suggestion** | Performance improvements, better patterns |\n\n## How It Works\n\n1. Fetches the PR diff via GitHub API\n2. Parses the unified diff into structured file/hunk objects with line number mapping\n3. Filters files by include/exclude patterns and max_files limit\n4. Sends the diff to Claude with a system prompt tuned for code review\n5. Parses Claude's JSON response into inline comments with severity levels\n6. Posts comments as a GitHub PR review (batch, with individual fallback)\n7. Optionally posts a summary comment\n\n## Requirements\n\n- An [Anthropic API key](https://console.anthropic.com/) stored as a repository secret\n- The workflow must have `pull-requests: write` permission\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaelicode%2Fcode-review-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaelicode%2Fcode-review-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaelicode%2Fcode-review-action/lists"}