stuhlmuller/Linewright Review
Line-by-line pull request review, summaries, and release notes.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| debug | Enable debug mode | no | false |
| max_files | Max files to summarize and review. Less than or equal to 0 means no limit. | no | 150 |
| review_simple_changes | Review even when the changes are simple | no | false |
| review_comment_lgtm | Leave comments even if the patch is LGTM | no | false |
| path_filters | The path filters, e.g., "src/**.py", "!dist/**", each line will be considered as one pattern. See also - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore - https://github.com/isaacs/minimatch | no | !dist/** !**/*.app !**/*.bin !**/*.bz2 !**/*.class !**/*.db !**/*.csv !**/*.tsv !**/*.dat !**/*.dll !**/*.dylib !**/*.egg !**/*.glif !**/*.gz !**/*.xz !**/*.zip !**/*.7z !**/*.rar !**/*.zst !**/*.ico !**/*.jar !**/*.tar !**/*.war !**/*.lo !**/*.log !**/*.mp3 !**/*.wav !**/*.wma !**/*.mp4 !**/*.avi !**/*.mkv !**/*.wmv !**/*.m4a !**/*.m4v !**/*.3gp !**/*.3g2 !**/*.rm !**/*.mov !**/*.flv !**/*.iso !**/*.swf !**/*.flac !**/*.nar !**/*.o !**/*.ogg !**/*.otf !**/*.p !**/*.pdf !**/*.doc !**/*.docx !**/*.xls !**/*.xlsx !**/*.ppt !**/*.pptx !**/*.pkl !**/*.pickle !**/*.pyc !**/*.pyd !**/*.pyo !**/*.pub !**/*.pem !**/*.rkt !**/*.so !**/*.ss !**/*.eot !**/*.exe !**/*.pb.go !**/*.lock !**/*.ttf !**/*.yaml !**/*.yml !**/*.cfg !**/*.toml !**/*.ini !**/*.mod !**/*.sum !**/*.work !**/*.json !**/*.mmd !**/*.svg !**/*.jpeg !**/*.jpg !**/*.png !**/*.gif !**/*.bmp !**/*.tiff !**/*.webm !**/*.woff !**/*.woff2 !**/*.dot !**/*.md5sum !**/*.wasm !**/*.snap !**/*.parquet !**/gen/** !**/_gen/** !**/generated/** !**/@generated/** !**/vendor/** !**/*.min.js !**/*.min.js.map !**/*.min.js.css !**/*.tfstate !**/*.tfstate.backup |
| disable_review | Only provide the summary and skip the code review. | no | false |
| disable_release_notes | Disable release notes | no | false |
| enable_security_scanner | Enable automatic security vulnerability scanning | no | true |
| enable_performance_analyzer | Enable automatic performance issue detection | no | true |
| enable_complexity_analyzer | Enable automatic code complexity analysis | no | true |
| smart_review_skip_generated | Skip review for generated files (lockfiles, auto-generated code) | no | true |
| smart_review_skip_trivial | Skip review for trivial changes (formatting, whitespace, comments only) | no | true |
| smart_review_skip_build_artifacts | Skip review for build artifacts (dist/, build/, etc.) | no | true |
| smart_review_skip_vendor | Skip review for vendor/third-party code | no | true |
| smart_review_skip_snapshots | Skip review for test snapshots | no | true |
| smart_review_custom_patterns | Custom regex patterns to skip (one per line). Example: ^internal/experimental/ \.generated\. | no | "" |
| smart_review_min_lines | Minimum number of changed lines to trigger review (helps skip very small changes) | no | 3 |
| enable_context_aware_prompts | Enable context-aware prompts that adapt based on file type (test, config, docs) and framework (React, Vue, etc.) for more relevant reviews | no | true |
| max_retry_attempts | Maximum number of retry attempts for failed file reviews (rate limits, timeouts, network errors). Set to 0 to disable retry. | no | 3 |
| enable_resume | Enable resume capability to continue from last successful file on retry. When enabled, the action will skip already-reviewed files and resume from where it left off. | no | true |
| openai_base_url | The url of the openai api interface. | no | https://api.openai.com/v1 |
| openai_light_model | Model to use for simple tasks like summarizing diff on a file. | no | gpt-4o-mini |
| openai_heavy_model | Model to use for complex tasks such as code reviews. | no | gpt-4o-mini |
| openai_model_temperature | Temperature for GPT model | no | 0.05 |
| openai_retries | How many times to retry OpenAI API in case of timeouts or errors? | no | 5 |
| openai_timeout_ms | Timeout for OpenAI API call in millis | no | 360000 |
| openai_concurrency_limit | How many concurrent API calls to make to OpenAI servers? | no | 6 |
| github_concurrency_limit | How many concurrent API calls to make to GitHub? | no | 6 |
| system_message | System message to be sent to the review model | no | You are `@linewright` (aka `github-actions[bot]`), the review desk for this repository. Read changes like a meticulous staff engineer with an editor's eye. Provide a thorough review of the code hunks and suggest replacement snippets when a concrete fix is warranted. Focus on high-signal areas such as: - Logic - Security - Performance - Data races - Consistency - Error handling - Maintainability - Modularity - Complexity - Optimization - Best practices: DRY, SOLID, KISS Do not comment on minor code style issues, missing comments/documentation, or speculative concerns. Prefer concise, actionable notes tied directly to the changed lines. |
| summarize | The prompt for final summarization response | no | Provide your final response in markdown with the following content: - **Walkthrough**: A high-level summary of the overall change instead of specific files within 80 words. - **Changes**: A markdown table of files and their summaries. Group files with similar changes together into a single row to save space. Avoid additional commentary as this summary will be added as a comment on the GitHub pull request. Use the titles "Walkthrough" and "Changes" and they must be H2. |
| summarize_release_notes | The prompt for generating release notes in the same chat as summarize stage | no | Craft concise release notes for the pull request. Focus on the purpose and user impact, categorizing changes as "New Feature", "Bug Fix", "Documentation", "Refactor", "Style", "Test", "Chore", or "Revert". Provide a bullet-point list, e.g., "- New Feature: Added search functionality to the UI". Limit your response to 50-100 words and emphasize features visible to the end-user while omitting code-level details. |
| language | ISO code for the response language | no | en-US |
| bot_icon | The icon for the reviewer | no | 🔍 |
Outputs
no outputs