Using AI to review a PR
10K+
This project aims to automate code review using the ChatGPT language model. It integrates with Github Actions, and upon receiving a Pull Request, it automatically sends each code review to ChatGPT for suggestion and generate description.
The following steps will guide you in setting up the code review automation with ChatGPT.
Before you begin, you need to have the following:
Create a secret for your OpenAI API Key in your Github repository or organization with the name openai_api_key. This secret will be used to authenticate with the OpenAI API.
You can do this by going to your repository/organization's settings, navigate to secrets and create a new secret with the name openai_api_key and paste your OpenAI API key as the value.
Then you need to set up your project's permissions so that the Github Actions can write comments on Pull Requests. You can read more about this here: automatic-token-authentication
name: Auto Code Review
on:
pull_request: # Trigger the workflow on pull request events
types: [opened, synchronize] # Run the workflow when pull request is opened or synchronized
jobs:
code-review: # Define the job name
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest # Specify the runner to run the job on
name: ChatGPT Code Review # Job name
steps:
- name: Review code and post comments # Step name
uses: moneyforwardvietnam/ai-code-review@v2 # Use the ChatGPT Github Actions from moneyforwardvietnam repository
with:
openai_api_key: ${{ secrets.OPENAI_API_KEY }} # Get the OpenAI API key from repository secrets
github_token: ${{ secrets.GITHUB_TOKEN }} # Get the Github Token from repository secrets
github_pr_id: ${{ github.event.number }} # Get the Github Pull Request ID from the Github event
openai_engine: "gpt-4o" # Optional: specify the OpenAI engine to use. Default is "gpt-3.5-turbo"
openai_temperature: 0 # Optional: specify the sampling temperature for OpenAI. Default is 0
openai_max_tokens: 1024 # Optional: specify the maximum number of tokens to generate in OpenAI completion. Default is 1024
auto_pr_descriptions: "true" # Optional: Enable or disable auto fill pull request descriptions. Default is true
auto_code_review: "false" # Optional: Enable or disable auto code review for pull request. Default is true
custom_openai_prompt: "" # Optional: Custom openai prompt for your needs. Leave it blank for default
In the above workflow, the pull_request event triggers the workflow whenever a pull request is opened or synchronized. The workflow runs on the ubuntu-latest runner and uses the moneyforwardvietnam/ai-code-review@v2 action.
The openai_api_key is passed from the secrets context, and the github_token is also passed from the secrets context. The github_pr_id is passed from the github.event.number context. The other three input parameters, openai_engine, openai_temperature, and openai_max_tokens, are optional and have default values.
PR Description will appear like this:
Content type
Image
Digest
sha256:f44723e64…
Size
73.7 MB
Last updated
about 2 years ago
docker pull mfvdevops/ai-code-review