AIがコミットメッセージ自動生成!神ツール『auto-commit』『commit-autosuggestions』の紹介

自動コミットメッセージ生成ツールについて

コミットメッセージ生成というと、https://whatthecommit.com/ を思い出すかたも多そうですが、いまではコードを解析して自動でコミットメッセージを生成できる時代になりました。
OpenAI/Codex(GPT-3のプログラミング版)を用いた『auto-commit』、BEATを用いた『commit-autosuggestions』の2つの導入方法、使用方法を紹介します。
これらを使って「commit message 書き方」を検索する日々から開放されましょう。

auto-commit

1. 概要

https://github.com/m1guelpf/auto-commit/

こちらはOpenAIのCodexを用いた自動コミットメッセージ生成システムです。
このツールは最近 (2022/11/01) 出たばかりなので、知らない方も多いかと思います。
Codexの紹介は以下ページが詳しいです。

https://qiita.com/sugulu_Ogawa_ISID/items/ffebe8e1692b6abfd4fe

`git diff HEAD` の内容を処理してOpenAIに送っているので、そうした処理が問題ないかたにオススメです。

2. 導入

2.1 OpenAIのアカウント作成

https://beta.openai.com/signup

こちらからOpenAIにサインアップします。

2.2 OpenAI:Codexへのリクエスト

http://beta.openai.com/codex-waitlist

24時間程度でリクエストが承認されます。

2.3 auto-commitのインストール

curlを使ったインストール

curl -fsSL https://raw.githubusercontent.com/m1guelpf/auto-commit/main/install.sh | sh -

aurを使ったインストール

yay -S auto-commit

2.4 APIキーの格納

OpenAIのダッシュボードでAPIキーを生成します。

https://beta.openai.com/account/api-keys

生成後、環境変数に格納します。

# bashrcの場合
echo "export OPENAI_API_KEY='{key}'" >> ~/.bashrc
source ~/.bashrc

3. 利用

git を使っているフォルダに移動し、 `git add .` して変更内容を追加後

auto-commit

とコマンドを打つだけでOKです。

オプションは以下の通りです。

% auto-commit --help
Automagically generate commit messages.

Usage: auto-commit [OPTIONS]

Options:
  -v, --verbose...  More output per occurrence
  -q, --quiet...    Less output per occurrence
      --dry-run     Output the generated message, but don't create a commit.
  -r, --review      Edit the generated commit message before committing.
  -h, --help        Print help information
  -V, --version     Print version information

4. 利用例

言語選択のためのUIを加えた処理を追加しました。

具体的にはselectフォームが追加され、i18nの辞書に日本語・英語・中国語のそれぞれの訳が入っています。

`auto-commit` を実行します。outputを少なくするオプションを入れておきます。

auto-commit -q

実装内容が正しく反映されました🎉

5. 使えない場合

エラーを吐いてしまう場合、Codexの利用承認が完了していない可能性があります。
Model Load Error 等が表示された場合は、Codexの承認状況を確認してください。

commit-suggestions

1. 概要

https://github.com/graykode/commit-autosuggestions

こちらはBEATを用いた自動コミットメッセージ生成システムです。

auto-commit と違い、Colab APIを使わないのでローカルで動かせます。

とはいえ、GPU環境を持っていないかたも多いと思うので、Google Colabを用いてサクッと commit message 自動化する手法を紹介します。

なお、対応言語は Python , JavaScript のみです。

2. 導入

2.1 pytorchサーバーの立ち上げ(Google Colab使用)

https://colab.research.google.com/github/graykode/commit-autosuggestions/blob/master/commit_autosuggestions.ipynb

上記にアクセスしノートブックページを開いたらランタイムタブで『すべてのセルを実行』をクリック

30秒程度で処理が終わりサーバーが応答可能な状態になります。

処理の一番下にあるこのURLをコピーしておきます。

2.2 commitのインストール

pip でインストール

pip install commit

2.3 サーバー設定の更新

さきほどのURLを用いてendpointを更新します。

commit configure --endpoint http://********.ngrok.io

3. 利用

`git add .` して変更ファイルをステージに追加します。

`commit` すると、Colab上で以下のように処理が走ります。

ターミナル上に候補となるコミットメッセージが表示されるので、問題なければ `y` と入力しエンターを押すと、自動生成されたコミットが追加されます。

この記事が気に入ったらサポートをしてみませんか?