🤖

【aicommits】AIがコミットメッセージ作ってくれるってよ!

2024/02/11に公開

個人開発している時、コミットメッセージを書くのが面倒だったり、どう書いたらよいか迷うことがあります。「あー適当でいっか。個人だし」って感じで怠惰になってしまいます。

しかし、コミットメッセージをないがしろにすると、未来の自分が困ってしまいます。あの時の修正内容がわからない、とか、何をしているのかわからない、とか。そういうことが起こりえます。

そんな時、AIがコミットメッセージを作ってくれるサービスがあると便利ですよね。
ということで、今回紹介するのは「aicommits」です。

aicommitsとは

AIを使用してコミットメッセージを作成してくれるcliツールです。内容は、コミットしたファイルの変更内容をもとに、自動で生成されます。
解析モデルはgpt-3.5-turboを使用しており、高い精度でコミットメッセージを生成してくれます。

セットアップ

リポジトリのREADMEに書いてある通りにセットアップします。
https://github.com/Nutlope/aicommits

  1. ai-commitsをグローバルインストールします。
npm install -g aicommits
  1. openaiのAPIキーを取得します。以下のリンクから取得できます。
    もしアカウントを持っていない場合は、新規登録してからAPIキーを取得してください。
    https://platform.openai.com/api-keys

  2. 取得したAPIキーを設定します。

aicommits config set OPENAI_KEY=<your token>
  1. コミットしたいリポジトリで以下のコマンドを実行するだけです。
aicommits

実際に使ってみる

設定したaicommitsを使用して、実際にコミットメッセージを生成してみます。

例えば2つの引数を受け取り、その合計を返す関数を作成したとします。

src/utils/sum.ts
export const sum = (a: number, b: number): number => a + b;

まずは変更をステージングします。

git add -A

次に、aicommitsを実行します。

aicommits

すると、以下のようなコミットメッセージが生成されます。yesを選択すると、そのメッセージでコミットされます。
生成されたコミットメッセージとしては、内容に相違はなく、問題なさそうです。

Use this commit message?

Add sum function to utils # 生成されたコミットメッセージ

yes / no

便利な使い方

基本的には上記の方法で使用できますが、もっと便利に使用できます。

候補を任意の数だけ表示する

デフォルトでは、コミットメッセージの候補は1つだけ表示されます。しかし、任意の数だけ表示できます。
以下のように--generateオプションを使用します。

aicommits --generate 3 # 3つの候補を表示できる

コミットの型を指定する

Conventional Commitsのようなコミットメッセージの型を指定できます。
以下のように--typeオプションを使用します。

aicommits --type conventional

例として先ほどのsum関数を追加した場合、以下のようなコミットメッセージが生成されます。

feat(utils): add sum function

エイリアスとして設定する

毎回aicommitsと打つのは面倒です。エイリアスを設定して、短縮して使えます。
以下、.zshrcにエイリアスを設定する例です。

.zshrc
alias aic='aicommits'

設定後は、以下のように短縮して使用できます。

aic

トラブルシューティング

運用上注意すべき点やつまづいた点などをまとめておきます。

APIキーが使用できない

下記のようなエラーが出ていますか。

You exceeded your current quota, please check your plan and billing details.

OpenAI側の支払い情報を確認してください。自身で支払い方法を設定し、実際に金額を支払わないとAPIキーが使用できません。

OpenAI管理画面にログインし、左タブのBilling > Overviewを確認します。もしCredit balanceが$0の場合、Add to credit balanceボタンを押して、支払いを行ってください。

コミットメッセージ内容がおかしい

一気に多くのファイルを変更し、コミットを行った場合、コミットメッセージがおかしくなります。実施内容が多くてうまく解析できないことが原因として挙げられます。

その場合は、一度にコミットするファイルを減らし、コミットを行ってください。基本的に1つ実装したら1つコミットするという方針が良いでしょう。

秘匿情報に注意する

コミットメッセージには、秘匿情報を含めないように注意してください。
例えば、APIキーなどがコミットメッセージに含まれると、gpt-3.5-turboが解析してしまいます。情報の漏洩につながる可能性があるため、注意が必要です。

まとめ

aicommitsを使用することで、コミットメッセージを簡単に作成できます。
ただし、運用上の注意点やトラブルシューティングが必要です。会社で使用する際は、セキュリティにも注意してください。

参考

https://github.com/Nutlope/aicommits

Discussion