ai-commit

AI generates git commit messages on your behalf.

MIT License

Downloads
140
Stars
5
Committers
1

AI Commit

AIがあなたに代わってgitのコミットメッセージを生成します。

目次

セットアップ

  1. インストール

    pnpm add -g @hirotomoyamada/ai-commit
    
  2. OpenAIから、あなたのAPIキーを取得します。

  3. ai-commitにAPIキーを設定します。

    ai-commit config set apiKey=<your token>
    

アップデート

インストールされているバージョンは、次にように確認します。

ai-commit --version

最新バージョンをインストールするには、次のように実行します。

pnpm up -g @hirotomoyamada/ai-commit --latest

使い方

コミットメッセージを生成するには、次にように実行します。

ai-commit

[!TIP]

ai-commitは、省略したエイリアスのaicを提供しています。

ai-commitを実行すると、2つの条件分岐が発生します。

  1. ステージ上のファイルが存在している場合

    • ステージ上のファイルをAIが差分を検出し、コミットメッセージを生成します。
    • 生成されたコミットメッセージを確認し、承認するとコミットされます。
  2. ステージ上にない変更されたファイルが存在している場合

    • 変更されたファイルの一覧が表示されます。
    • 一覧のファイルからステージ上に追加するファイルを選択します。
    • 先ほど、ステージ上に追加したファイルをAIが差分を検出し、コミットメッセージを生成します。
    • 生成されたコミットメッセージを確認し、承認するとコミットされます。

[!TIP]

現在のステージ上にない変更されたファイルをすべてステージ上に追加する(git add .)場合は、--allまたは-aを設定します。

コミットメッセージの候補を変更する

コミットメッセージの候補を変更する場合は、オプションに--generate <i>または-g <i>を設定します。デフォルトは、1が設定されています。

ai-commit --generate 5

[!NOTE]

候補は、最大5まで設定することができます。

Conventional Commitsを適応する

プロジェクトの多くは、Conventional Commitsのコミットメッセージのルールを設けているでしょう。もし、このルールを適応する場合は、--typeまたは-tconventionalを設定します。

ai-commit --type conventional

[!NOTE]

コンフィグ上で設定することで、常にConventional Commitsのコミットメッセージのルールを適応することができます。

コンフィグ

コンフィグを取得するには、次のように実行します。

ai-commit config get

特定の項目だけ取得する場合は、次のように実行します。

ai-commit config get generate locale

コンフィグに値を設定するには、次のように実行します。

ai-commit config set generate=5 type=conventional

コンフィグの値をリセットするには、次のように実行します。

ai-commit config reset
項目 デフォルト 説明
apiKey undefined OpenAIで生成したAPIキー
generate 1 生成するコミットメッセージの数
locale en コミットメッセージの生成で使用するロケール
timeout 10000 OpenAIへのネットワークリクエストのタイムアウト(ミリ秒)
type undefined 生成するコミットメッセージのタイプ
model gpt-4 コミットメッセージの生成で使用するOpenAIモデル
maxLength 50 生成されるコミットメッセージの最大文字数

プロンプト

プロンプトを取得するには、次のように実行します。

ai-commit prompt get

デフォルトのプロンプトは、下記の通りです。

Generate a concise git commit message written in present tense for the following code diff with the given specifications below:
Message language: {{ locale }}
Commit message must be a maximum of {{ maxLength }} characters.
Exclude anything unnecessary such as translation. Your entire response will be passed directly into git commit.
{{ commitType }}
The output response must be in format:
{{ commitRule }}

[!NOTE]

{{ locale }}{{ maxLength }}は、コンフィグで設定した値が挿入されます。

プロンプトを更新するには、次のように実行します。

ai-commit prompt set

プロンプトをリセットするには、次のように実行します。

ai-commit prompt reset

ライセンス

MIT © Hirotomo Yamada

Package Rankings
Top 41.49% on Npmjs.org
Badges
Extracted from project README
NPM Minizip GitHub