Open5

AI Commits を試してみた

hankei6kmhankei6km

設定(OpenAI の API Key)

ツールのインストール自体は npm でできるが、OpenAI の API Key が必要。

  1. Retrieve your API key from OpenAI

    Note: If you haven't already, you'll have to create an account and set up billing.

  2. Set the key so aicommits can use it:

    aicommits config set OPENAI_KEY=<your token>

これは下記を参考に作成した。
https://dev.classmethod.jp/articles/open-ai-swift-example/

設定すると ~/.aicommits が作成される。API Key はこの中にべた書きされるので取り扱いに注意。
(XDG の設定はてきとうにやっている環境で試しているので、もしかたしたら ~/.config などに作成されるかも)

hankei6kmhankei6km

試してみる

とりあえず npx で試す。

下記で試したのと同じリポジトリで同じ diff (になるファイルを add してある)の状況で試してみた。

https://zenn.dev/link/comments/ff70d0488d1150

このときは、下記のように生成された。

chore: add debug script

Add `debug` script to `package.json` to start node with inspect option and `build:debug` script to compile with source map.

aicommits の場合は下記のようになる。

$ npx aicommits --dry-run
┌   aicommits
│
◇  Detected 1 staged file:
     package.json
│
◇  Changes analyzed
│
◇  Use this commit message?

   Add debug script for easier development

│  No
│
└  Commit cancelled

conventional commits の prefix(type) などは付与されない。この辺はいつも使っているコミットテンプレートなども生成の材料にしている場合との違いといった感じなのかな?

なお、 conventional commits 関連は対応が予定されているようだけど、人間が判断することになるもよう。

• Add support for conventional commits as a flag that users can enable

https://github.com/Nutlope/aicommits/pull/113

また、コミットをちょっと見た感じではメッセージ生成の材料として type を渡すことはなさそうかな。

hankei6kmhankei6km

diff をコピペしないでも使えるのは便利なので、とりあえず Dev Container のいつものイメージに入れておいて少し試してみる予定。

hankei6kmhankei6km

Dev Containers の Feature にしてみた

Dev Containers の Feature を作ってみたかったので、どうせならと aicommits で試してみた。

https://github.com/hankei6km/test-feature-starter/tree/main/src/aicommits

とりあえず試すなら Dev Containers 拡張機能でデフォルトの Feature に指定するとインストールされる。が、npm が必要なのでイメージによっては ghcr.io/devcontainers/features/node も必要になるかもしれない。

  "dev.containers.defaultFeatures": {
    "ghcr.io/devcontainers/features/node:1":{},
    "ghcr.io/hankei6km/test-feature-starter/aicommits:1": {},
  },

個人用 Featrures のリポジトリをつくったらテスト用リポジトリから移すかも。