GithubHelp home page GithubHelp logo

pointhex / code-review-gpt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mattzcarey/code-review-gpt

0.0 0.0 0.0 2.4 MB

Your personal code reviewer powered by LLMs (OpenAI GPT-3.5/4, Llama, Falcon, Azure AI) & Embeddings โšก๏ธ Improve code quality and catch bugs before you break production ๐Ÿš€

Home Page: https://oriontools.ai

License: MIT License

JavaScript 2.83% TypeScript 96.54% CSS 0.63%

code-review-gpt's Introduction

Code Review GPT

NPM Contributors Pulse License Twitter Slack

We give engineers their weekends back

Code Review GPT uses Large Language Models to review code in your CI/CD pipeline. It helps streamline the code review process by providing feedback on code that may have issues or areas for improvement.

It should pick up on common issues such as:

  • Exposed secrets
  • Slow or inefficient code
  • Unreadable code

It can also be run locally in your command line to review staged files.

Code Review GPT is in alpha and should be used for fun only. It may provide useful feedback but please check any suggestions thoroughly.

Demo

code-review-gpt-3.mp4

Prerequisites

  • Node.js
  • Git
  • Github or Gitlab CLI (optional for configure tool)

Easy Setup in CI ๐Ÿš€

In the root of your git repository run:

Github Actions

npm install code-review-gpt
npx code-review-gpt configure --setupTarget=github

Gitlab CI

If you are running this tool in Gitlab, you will need to do some additional setup. You will need to create a access token in Gitlab and store it in your CI/CD variables to allow the bot access to you Gitlab account. Follow the steps below.

Get Your Access Token

  1. Log in to your GitLab account.
  2. Go to your Repo settings by clicking on the repository, and selecting Settings -> Access Tokens.
  3. In this section, you can generate a new access token.
  4. Name your token something relevant and understandable ie. CODE_REVIEW-GPT-TOKEN. Set the scope to be api only.
  5. Click the "Create personal access token" button. GitLab will generate the token and display it to you once. Make sure to copy this value, we are going to use it in the next step.

Set Access Token as a CI/CD Variable

  1. Navigate to the project where you want to add the code review bot.

  2. In the left sidebar, click the Settings drop down, then click CI/CD

  3. Scroll down to the Variables section and click the Expand button.This is where you can manage your CI/CD variables.

  4. Create a new variable by clicking the Add Variable button in the CI/CD Variable table.

  5. Paste your previously copied access token into the Value box. Name the variable GITLAB_TOKEN. Under the Flags section, make sure to tick the Mask variable option.

    • [Un-tick the Protect variable if your branches are not protected, otherwise this variable won't be availiable for the bot to use.]
  6. Save you changes. Now you can go ahead and run the following commands in you project directory.

npm install code-review-gpt
npx code-review-gpt configure --setupTarget=gitlab

See templates for example yaml files. Copy and paste them to perform a manual setup.

Local Usage ๐ŸŒˆ

Code Review GPT works locally to review files staged for commit:

Scoped Install

Run npm i code-review-gpt && npx code-review-gpt review in the root directory of a git repository.

Global Install

Run npm i -g code-review-gpt to install the tool globally.

You can now run code-review-gpt review in the root directory of any git-enabled repository on your machine.

Commands

  • code-review-gpt review - Runs the code review on the staged files.

  • code-review-gpt configure - Runs a setup tool to configure the application.

  • code-review-gpt test - Runs the e2e testing suite used internally in the CI in the tool repo.

Options

  • --ci - Used with the review command. Options are --ci=("github" | "gitlab"). Defaults to "github" if no option is specified. Runs the application in CI mode. This will use the BASE_SHA and GITHUB_SHA environment variables to determine which files to review. It will also use the GITHUB_TOKEN environment variable to create a comment on the pull request with the review results.

  • --reviewType - Used with the 'review' command. The options are --reviewType=("changed" | "full" | "costOptimized). Defaults to "changed" if no option is specified. Specifies whether the review is for the full file or just the changed lines. costOptimized limits the context surrounding the changed lines to 5 lines.

  • --commentPerFile - Used when the --ci flag is set. Defaults to false. It enables the bot to comment the feedback on a file-by-file basis.

  • --setupTarget - Used with the configure command. Options are --setupTarget=("github" | "gitlab"). Defaults to "github" if no option is specified. Specifies for which platform ('github' or 'gitlab') the project should be configured for.

  • --model - The model to use for the review. Defaults to gpt-4. You can use any openai model you have access to.

  • --debug - Runs the application in debug mode. This will enable debug logging.

Getting Started ๐Ÿ’ซ

  1. Clone the repository:

    git clone https://github.com/mattzcarey/code-review-gpt.git
    cd code-review-gpt
  2. Install dependencies:

    npm install
  3. Set up the API key:

    • Rename the .env.example file to .env.
    • Open the .env file and replace YOUR_API_KEY with your actual OPENAI API key.

When used globally you should run export OPENAI_API_KEY=YOUR_API_KEY (or similar for your operating system) in your terminal to set the API key.

  1. Run the application:

    npm start

See the package.json file for all the npm commands you can run.

  1. Make a PR ๐ŸŽ‰

We use release-please on this project. If you want to create a new release from your PR, please make sure your PR title follows the Conventional Commits format. The release-please bot will automatically create a new release for you when your PR is merged.

  • fix: which represents bug fixes, and correlates to a patch version.
  • feat: which represents a new feature, and correlates to a SemVer minor.
  • feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a major version.

Contributors ๐Ÿ™

Thanks to our wonderful contributors!

Roadmap (see projects tab) ๐ŸŒ

Sponsors โค๏ธ

quivr logo aleios logo

Star History โญ๏ธ

Star History Chart

code-review-gpt's People

Contributors

coldfrey avatar danigo99 avatar fabienzucchet avatar github-actions[bot] avatar gowoons avatar lizacullis avatar mattzcarey avatar muffe avatar pointhex avatar sebrathezebra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.