AI(OpenAIのgpt-3.5-turboとgpt-4モデル)から(GitHubのプルリクエストに連動して)コードレビューをもらう。 - AI-based PR reviewer and summarizer (CodeRabbit)


2023年12月22日


【自動コードレビューのお話です】

AI(OpenAIのgpt-3.5-turboとgpt-4モデル)から(GitHubのプルリクエストに連動して)コードレビューをもらう。

AI-based PR reviewer and summarizer (CodeRabbit)
https://github.com/coderabbitai/ai-pr-reviewer

OpenAIのgpt-3.5-turboとgpt-4モデルを使用した、AIベースのGitHubプルリクエストのコードレビューとサマライザー。GitHubアクションとして使用するように設計。すべてのプルリクエストとレビューコメントに対して実行。

  1. Pull Request Summary
  2. Code Review feedback
  3. Chat with CodeRabbit

この3つができるだけでもすごい。。。

以下、設定・インストール・構築メモなど。 


GitHub

該当フォルダ(リポジトリ)に.github/workflows ディレクトリを作成する。その中に、ai-review.ymlのファイルを作成して、ワークフロー設定する。

ai-review.ymlの内容は下記。

name: Code Review

permissions:
  contents: read
  pull-requests: write

on:
  pull_request:
  pull_request_review_comment:
    types: [created]

concurrency:
  group: $ github.repository -$ github.event.number || github.head_ref ||
    github.sha -$ github.workflow -$ github.event_name ==
    'pull_request_review_comment' && 'pr_comment' || 'pr' 
  cancel-in-progress: $ github.event_name != 'pull_request_review_comment' 

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: coderabbitai/ai-pr-reviewer@latest
        env:
          GITHUB_TOKEN: $ secrets.GITHUB_TOKEN 
          OPENAI_API_KEY: $ secrets.OPENAI_API_KEY 
        with:
          debug: false
          review_simple_changes: false
          review_comment_lgtm: false
          language: ja-jp
          path_filters: |
            !**/package-lock.json
            !api-app/schema.gql
            !api-app/csv/*.csv

Actionにワークフロー(All workflows / Showing runs from all workflows)が追加されていることを確認する。

あとは、OpneAIから API key を取得して(10ドルくらいチャージ)、GitHubで、OPENAI_API_KEYを設定する。

ソースコードを修正したら、GitHub DesktopからPreview Pull Requestを実行、GitHubにおいて、Create Pull Requestを実行する。そのプルリクエストが実行されているかを確認。

数十秒〜数分すると、Summary by CodeRabbitが返ってきます。

ソースコードの提案などもしてくれます。

チャット(下にあるテキストフィールド)で質問したり意見すると、回答・ソースコードをくれます。


GitHub Desktop

gitコマンドでも操作できるけど、面倒なので、GitHub Desktopで利用する。ブランチとかも作成(review-test)。


API keysと使用状況


参考サイトなど

AI-based PR reviewer and summarizer
https://github.com/coderabbitai/ai-pr-reviewer

CodeRabbit in Action
https://coderabbit.ai/docs/introduction/features

もう初回コードレビューはAIに任せる時代になった - CodeRabbit -
https://zenn.dev/minedia/articles/7928ef7545b393

GitHub Desktop
https://desktop.github.com/

【入門】Github Desktopとは?インストール・使い方
https://www.kagoya.jp/howto/it-glossary/develop/githubdesktop/

GitHub Actions/ワークフローの使用/ワークフローについて
https://docs.github.com/ja/actions/using-workflows/about-workflows

【GitHub超初心者向け】SSH keyでGitHubに接続してみる
https://zenn.dev/taki_san/articles/e18613a464e74b

GitHubにSSHでgit pushする方法
https://yoshiyoshifujii.hatenablog.com/entry/2014/08/12/230144

認証/SSH を使用した接続/新しい SSH キーを生成して ssh-agent に追加する
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

API keys
https://platform.openai.com/api-keys

Fine-tuning
https://platform.openai.com/docs/guides/fine-tuning


Archive