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
![](https://assets.st-note.com/img/1667931660759-fD7Figc0JB.png?width=1200)
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を加えた処理を追加しました。
![](https://assets.st-note.com/img/1667931687457-fsUqaJSzlG.png)
![](https://assets.st-note.com/img/1667931687485-GRXdlRLA1J.png?width=1200)
具体的にはselectフォームが追加され、i18nの辞書に日本語・英語・中国語のそれぞれの訳が入っています。
`auto-commit` を実行します。outputを少なくするオプションを入れておきます。
auto-commit -q
![](https://assets.st-note.com/img/1667931672304-ldAVPS6vWt.png?width=1200)
実装内容が正しく反映されました🎉
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://assets.st-note.com/img/1667931630285-Oyhh3hgnn2.png)
30秒程度で処理が終わりサーバーが応答可能な状態になります。
![](https://assets.st-note.com/img/1667931637499-EaRxOJ8NSn.png)
処理の一番下にあるこのURLをコピーしておきます。
2.2 commitのインストール
pip でインストール
pip install commit
2.3 サーバー設定の更新
さきほどのURLを用いてendpointを更新します。
commit configure --endpoint http://********.ngrok.io
3. 利用
`git add .` して変更ファイルをステージに追加します。
![](https://assets.st-note.com/img/1667931619824-94effnL6iC.png?width=1200)
`commit` すると、Colab上で以下のように処理が走ります。
![](https://assets.st-note.com/img/1667931599959-1wZEqIoshq.png)
![](https://assets.st-note.com/img/1667931609739-EpIax6DbP2.png)
ターミナル上に候補となるコミットメッセージが表示されるので、問題なければ `y` と入力しエンターを押すと、自動生成されたコミットが追加されます。
この記事が気に入ったらサポートをしてみませんか?