11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

GitHub Actions で ChatGPT を使ってプルリクの要約とレビューをしてみる

Last updated at Posted at 2023-07-05

GitHub Actions で ChatGPT を使ってプルリクの要約とレビューをしてみる

はじめに

まず、ChatGPT を使ったプルリクで実現したかったことは…

レビューをしてもらいたくなるような仕組みを作りたかった

からです。

プルリクを出して、レビューを受けるのはソフトウェアの開発では非常に良いことだと思いますが、レビュアーのレビュー内容によっては凹んでしまう内容もあると思います。

それを少しでも緩和するために、優しい言葉で AI に指摘された方がかなり楽です。
一人壁打ちもできます。

Auto Review by OpenAI

自動レビューは GitHub Actions を利用します。

レビュー内容は以下のようにプルリクのコメントとして投稿されます。

image.png

実装方法

単純にレビューをするだけであれば、以下のようなワークフローを .github/workflows に配置するだけです。
ただし、このアクションは OpenAI の API を利用しますので、API キーの発行が必要になります。
事前に OpenAI の API キーを secrets.OPENAI_API_KEY に設定しておくだけです。
target にはカンマ区切りでレビュー対象のファイルの拡張子を書きます。
language にはレビューで投稿される言語をしていしますが、デフォルトでは英語になっているため、日本語を指定しています。

name: PR Review

on:
  pull_request:
    types: [ opened, synchronize ]

jobs:
  Build:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    permissions:
      contents: read
      pull-requests: write

    steps:
      - uses: actions/checkout@v3

      - uses: akiojin/auto-review-github-action@v0.2.1
        with:
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}
          target: 'cs,yml'
          language: 日本語

OpenAI の API キーの作成方法

OpenAI platform

上記サイトの右上にある「Personal > View API keys」をクリックして、APIキーのリストを表示します。

ss2.png

次に、「Create new secret key」を選択し、新しいAPIキーを作成します。

ss1.png

「Name」に適当な名前を入力し、「Create secret key」を選択して鍵を作成します。

ss3.png

作成したAPIキーをコピーします。

ss4.png

コピーしたAPIキーをOPENAI_API_KEYのようなわかりやすい名前でシークレット変数に設定します。

さいごに

まだまだ、改善の余地はあると思いますが、目的である「レビューをしてもらいたくなるような仕組みを作りたかった」にはかなり近づけているのではないかと思います。

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?