aicommitsを使ってコミットメッセージを作成してもらう

はじめに

またまた、開発効率が上がるものを探していると、formulaで下記を見つけた。
https://formulae.brew.sh/formula/aicommits そういえば、見聞きしたことあるなと思ったので、これを使ってみる。

環境

Mac OS Sonoma 14.5
Homebrew 4.3.9

準備

aicommitsのインストール

brew install aicommits 
ログ
brew install aicommits
==> Downloading https://formulae.brew.sh/api/formula.jws.json
########################################################################################################################## 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
########################################################################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/aicommits/manifests/1.11.0
########################################################################################################################## 100.0%
==> Fetching dependencies for aicommits: c-ares, libuv and node
==> Downloading https://ghcr.io/v2/homebrew/core/c-ares/manifests/1.32.1
########################################################################################################################## 100.0%
==> Fetching c-ares
==> Downloading https://ghcr.io/v2/homebrew/core/c-ares/blobs/sha256:131bb254c554fb589fe2c9ac194674e6a68b37a6f978825f037acf8cde33
########################################################################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/libuv/manifests/1.48.0
########################################################################################################################## 100.0%
==> Fetching libuv
==> Downloading https://ghcr.io/v2/homebrew/core/libuv/blobs/sha256:06b2dfb049b8962aab284b4e79f6c930a511a6d91e70055e3ee2ac8c53a36
########################################################################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/node/manifests/22.4.1
########################################################################################################################## 100.0%
==> Fetching node
==> Downloading https://ghcr.io/v2/homebrew/core/node/blobs/sha256:d20bc9e22395c5b7b0c9886598b24f9ded801fe089c3bbcb7bc54b7f9c150a
########################################################################################################################## 100.0%
==> Fetching aicommits
==> Downloading https://ghcr.io/v2/homebrew/core/aicommits/blobs/sha256:a500d7ca5f6978eb4e3bb96677f8f332267c5b3070aafb8f8c7b4af85
########################################################################################################################## 100.0%
==> Installing dependencies for aicommits: c-ares, libuv and node
==> Installing aicommits dependency: c-ares
==> Downloading https://ghcr.io/v2/homebrew/core/c-ares/manifests/1.32.1
Already downloaded: /Users/horibahiroto/Library/Caches/Homebrew/downloads/491895419a01e439ca3fb9b547b24f89d25d10b1e354356ee22ac60
554d0c78c--c-ares-1.32.1.bottle_manifest.json                                                                                    ==> Pouring c-ares--1.32.1.sonoma.bottle.tar.gz
🍺  /usr/local/Cellar/c-ares/1.32.1: 169 files, 821.5KB
==> Installing aicommits dependency: libuv
==> Downloading https://ghcr.io/v2/homebrew/core/libuv/manifests/1.48.0
Already downloaded: /Users/horibahiroto/Library/Caches/Homebrew/downloads/8ee1d27fb604f55e3c4415b96e34dc9c7f557996832c372d984c816
2b29a4ad2--libuv-1.48.0.bottle_manifest.json                                                                                     ==> Pouring libuv--1.48.0.sonoma.bottle.tar.gz
🍺  /usr/local/Cellar/libuv/1.48.0: 20 files, 1.1MB
==> Installing aicommits dependency: node
==> Downloading https://ghcr.io/v2/homebrew/core/node/manifests/22.4.1
Already downloaded: /Users/horibahiroto/Library/Caches/Homebrew/downloads/e00f84273691fe507828d303d91ed1b2cbcd60bc6f8abc3da77b0e5
aa22313ec--node-22.4.1.bottle_manifest.json                                                                                      ==> Pouring node--22.4.1.sonoma.bottle.tar.gz
🍺  /usr/local/Cellar/node/22.4.1: 2,068 files, 79MB
==> Installing aicommits
==> Pouring aicommits--1.11.0.all.bottle.tar.gz
🍺  /usr/local/Cellar/aicommits/1.11.0: 51 files, 7.0MB
==> Running `brew cleanup aicommits`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

使ってみる

  1. Nodeのバージョンを最小バージョンであるv14以上に設定する。

nodebrewをインストールしているため、下記のように変更した。

nodebrew install stable

nodebrew ls

nodebrew use v22.4.1
  1. API keyの設定
aicommits config set OPENAI_KEY=<your token>
  1. gitリポジトリ直下で、aicommitsの実行
aicommits
失敗ログ
aicommits
┌   aicommits 
◇  Detected 1 staged file:
     content/post/tech/ai/use-aicommits.md
◇  Changes analyzed
└  ✖ OpenAI API Error: 429 - Too Many Requests

{
    "error": {
        "message": "You exceeded your current quota, please check your plan and billing details. For more information on this err
or, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.",                                                     "type": "insufficient_quota",
        "param": null,
        "code": "insufficient_quota"
    }
}

429のエラーが出た。

無料プランで使っており、APIの無料分を使い果たしていたようなのでエラーになっていたようだ。
$5チャージしてみて再度実行する。

aicommits

下記のような感じになる。

ログ
aicommits
┌   aicommits 
◇  Detected 1 staged file:
     content/post/tech/ai/use-aicommits.md
◇  Changes analyzed
◇  Use this commit message?

   Add aicommits installation guide

│  Yes
└  ✔ Successfully committed!


aicommits
┌   aicommits 
◇  Detected 1 staged file:
     content/post/tech/ai/use-aicommits.md
◇  Changes analyzed
◇  Use this commit message?

   Add preparation steps and resolve API key issue

│  No
└  Commit cancelled




aicommits
┌   aicommits 
◇  Detected 1 staged file:
     content/post/tech/ai/use-aicommits.md
◇  Changes analyzed
◇  Use this commit message?

   Add Open AI API key setup instructions

│  Yes
└  ✔ Successfully committed!

結構良いのだが、コミットのためだけにとなると微妙・・・?
GitHubCopilotで良いような気もした。

参考

https://github.com/Nutlope/aicommits

おわりに

今回は、aicommitsを使ってコミットメッセージをAIに作成してもらったりした。
楽ではあるが、コストパフォーマンス的にはどうだろうといった感じ。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。