A code review robot powered by ChatGPT
Translation Versions: ENGLISH | 简体中文 | 繁體中文 | 한국어 | 日本語
❗️Due to cost considerations, BOT is only used for testing purposes and is currently deployed on AWS Lambda with ratelimit restrictions. Therefore, unstable situations are completely normal. It is recommended to deploy an app by yourself.
Install: apps/cr-gpt;
- Go to the repo homepage which you want integrate this bot
- click
settings - click
actionsundersecrets and variables - Change to
Variablestab, create a new variableOPENAI_API_KEYwith the value of your open api key (For Github Action integration, set it in secrets)
- The robot will automatically do the code review when you create a new Pull request, the review information will show in the pr timeline / file changes part.
- After
git pushupdate the pull request, cr bot will re-review the changed files
example:
- Add the
OPENAI_API_KEYto your github actions secrets - Create
.github/workflows/cr.ymladd bellow content - When a PR is opened or a commit is pushed to it, ChatGPT reviews the changes and comments to the PR.
- If a PR has one of the following labels, ChatGPT does not review.
no-review-by-ChatGPTrenovate/Majorrenovate/Minorrenovate/Patchrenovate/security
- If a PR has one of the following labels, ChatGPT does not review.
name: Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event_name == 'pull_request'
steps:
- uses: hrbrain/ChatGPT-CodeReview@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
TARGETS: 'app/***,libs/**' # comma separated
IGNORE: '**/*.pb.go,**/mocks/**' # comma separated, please set NONE when no file is ignored.
# Optional
LANGUAGE: English # Default: Japanese
OPENAI_API_ENDPOINT: https://api.openai.com/v1
MODEL: gpt-3.5-turbo # Default: gpt-4o, https://platform.openai.com/docs/models
PROMPT: Please review the changes # Default: Below is a code patch, please help me do a brief code review on it. Any bug risks and/or improvement suggestions are welcome
top_p: 0.5 # Default: 1, https://platform.openai.com/docs/api-reference/chat/create#chat-create-top_p
temperature: 0.5 # Default: 1, https://platform.openai.com/docs/api-reference/chat/create#chat-create-temperature
max_tokens: 10000 # Default: undefined, https://platform.openai.com/docs/api-reference/chat/create#chat-create-max_tokens
MAX_PATCH_LENGTH: 5000 # Default: 50000, if the patch/diff length is large than MAX_PATCH_LENGTH, will be ignored and won't review.- clone code
- copy
.env.exampleto.env, and fill the env variables - install deps and run
npm i
npm i -g pm2
npm run build
pm2 start pm2.config.cjsprobot for more detail
# Install dependencies
npm install
# Build code
npm run build
# Run the bot
npm run start# 1. Build container
docker build -t cr-bot .
# 2. Start container
docker run -e APP_ID=<app-id> -e PRIVATE_KEY=<pem-value> cr-botIf you have suggestions for how cr-bot could be improved, or want to report a bug, open an issue! We'd love all and any contributions.
For more, check out the Contributing Guide.
this project is inpired by codereview.gpt
ISC © 2023 anc95
