Sign inSign up

mfvdevops/ai-code-review

By mfvdevops

Updated about 2 years ago

Using AI to review a PR

Image
Machine learning & AI
0

10K+

mfvdevops/ai-code-review repository overview

Code Review with ChatGPT

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.

Setup

The following steps will guide you in setting up the code review automation with ChatGPT.

Prerequisites

Before you begin, you need to have the following:

  • An OpenAI API Key. You will need a personal API key from OpenAI which you can get here: https://openai.com/api/. To get an OpenAI API key, you can sign up for an account on the OpenAI website https://openai.com/signup/. Once you have signed up, you can create a new API key from your account settings.
  • A Github account and a Github repository where you want to use the code review automation.
Step 1: Create a Secret for your OpenAI API Key

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.

Step 2: Adjust Permissions

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

Step 3: Create a new Github Actions workflow in your repository in `.github/workflows/code-review.yaml. A sample workflow is given below:
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:

image

Built With

Tag summary

Content type

Image

Digest

sha256:f44723e64

Size

73.7 MB

Last updated

about 2 years ago

docker pull mfvdevops/ai-code-review