Skip to content

Louis-7/ai-code-review

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

AI Code Review

Function Deploy

AI Code Review Banner

Let AI do code review for you! Demo

This app is calling OpenAI chatGPT API to do code review for you.

GitHub App | GitHub Action | Self-host Instruction

Install

GitHub App

  1. Install GitHub App for you repository - GitHub App - AI Code Review
  2. Create a pull request in your repository

GitHub Action

  1. Go to Settings -> Secrets and variables -> Actions -> New repository secret

  2. Create a repository secret named OPENAI_API_KEY and fill it with your API key

  3. Add following configurtion in your .github/workflows/pr-code-review.yml

    name: Code Review
    permissions:
      contents: read
      pull-requests: write
    on:
      pull_request:
        types: [opened, synchronize]
    jobs:
      code-review:
        runs-on: ubuntu-latest
        steps:
          - uses: Louis-7/ai-code-review@v0.4
            env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
              PATH_TO_EXCLUDE: action/**/*, package-lock.json, package.json
              MAX_PATCH_PER_FILE: 2000
              MAX_FILE_PER_PR: 20
    
  4. GITHUB_TOKEN and OPENAI_API_KEY are required parameter. Others are optional. You can get all available options in the .env.action.example

  5. Create a pull request in your repository

Host it by yourself

You can also host the code reviewer by your self. Just follow the Dev section.

Dev

The application is built on Probot.

Setup

# Install dependencies
npm install

# add environment variables
cp .env.example .env

# build app
npm run build

# Run the bot
npm start

Learn more about Probot configuration.

Build

# build node.js app
npm run build

# build GitHub Action
npm run build:action

# build deployable azure function
npm run build:function

Docker

You can also build docker image to deploy.

# 1. Build container
docker build -t protagonist-bot .

# 2. Start container
docker run -e APP_ID=<app-id> -e PRIVATE_KEY=<pem-value> protagonist-bot

License

GPL 3.0 © 2023 Louis Liu