auto-commit
AI搭載Git自動コミットメッセージ生成ツール - OpenAI / DeepSeek / Gemini 対応
🌐 Languages: English | 简体中文 | Русский | العربية | فارسی
概要
auto-commitは、ステージされた変更を分析し、適切なコミットメッセージを自動生成するCLIツールです。本プロジェクトはm1guelpf/auto-commitのフォークで、複数のLLMプロバイダー(OpenAI、DeepSeek、Gemini)に対応し、カスタマイズ可能なコミットメッセージフォーマット機能を追加しています。
特徴
- 🤖 マルチプロバイダー対応: OpenAI、DeepSeek、Google Gemini から選択可能
- 🎨 カスタムフォーマット:
--formatオプションで自由にメッセージ形式を設定可能 - 📝 .gitmessage テンプレート: プロジェクト固有のコミットルールを設定可能
- 🚀 高速実行: Rust製で軽量・高速動作
- 🔧 柔軟な設定: 環境変数や
.envファイルでの設定管理 - 🌍 マルチプラットフォーム: Windows、macOS、Linux対応
インストール方法
Homebrew (macOS / Linux)
準備中: Homebrew tapは現在準備中です。ソースビルドまたはバイナリダウンロードをご利用ください。
Cargo (Rust)
# crates.io から(公開後)
# GitHubリポジトリから直接
バイナリダウンロード
GitHub Releasesから、お使いのプラットフォーム向けのバイナリをダウンロード:
| プラットフォーム | ファイル |
|---|---|
| macOS (Apple Silicon) | auto-commit-darwin-aarch64 |
| macOS (Intel) | auto-commit-darwin-x86_64 |
| Linux (x86_64) | auto-commit-linux-x86_64 |
| Linux (deb) | auto-commit-linux-x86_64.deb |
| Windows (x86_64) | auto-commit-win-x86_64.exe |
# 例: macOS (Apple Silicon)
Arch Linux (AUR)
注意: 現在AURの
auto-commitパッケージはオリジナルの m1guelpf/auto-commit 用です。このフォーク版をインストールするには、Cargo (GitHub) またはソースビルドをご利用ください。
# オリジナル版をインストールする場合
# または
ソースからビルド
# リポジトリをクローン
# ビルド
# バイナリをパスに移動
セットアップ
APIキーの設定
お使いのLLMプロバイダーのAPIキーを環境変数に設定します。複数設定されている場合は、優先順位に従って自動選択されます。
優先順位: OPENAI_API_KEY > DEEPSEEK_API_KEY > GEMINI_API_KEY
# OpenAI を使用
# DeepSeek を使用
# Google Gemini を使用
または、プロジェクトルートに.envファイルを作成:
# .env ファイル(いずれか1つを設定)
OPENAI_API_KEY='sk-...'
# DEEPSEEK_API_KEY='sk-...'
# GEMINI_API_KEY='AIza...'
動作確認
# バージョン確認
# ヘルプ表示
使い方
基本的な使用方法
# 変更をステージ
# コミットメッセージを自動生成して実行
実行時に使用されるプロバイダーが表示されます:
⠋ Generating commit message using OpenAI...
✓ Commit message generated (OpenAI)
オプション
# ドライラン(実際にはコミットしない)
# 生成されたメッセージを確認してから決定
# 強制実行(確認なし)
# カスタムフォーマット指定
# 詳細なログ出力
フォーマットプレースホルダー
カスタムフォーマットで使用可能なプレースホルダー:
| プレースホルダー | 説明 | 例 |
|---|---|---|
{title} |
コミットの要約(1行目) | Add user authentication |
{description} |
詳細な説明 | Implemented JWT-based auth... |
{emoji} |
GitMojiスタイルの絵文字 | ✨, 🐛, 📝 |
{prefix} |
Conventional Commitsプレフィックス | feat, fix, docs |
{scope} |
変更スコープ(optional) | api, cli, config |
使用例
# Conventional Commits形式
# GitMoji形式
# シンプル形式
.gitmessage テンプレート
プロジェクト固有のコミットルールを設定できます。以下の優先順位で読み込まれます:
~/.gitmessage- ユーザーカスタム(最優先)./.gitmessage- プロジェクトルート- 組み込みデフォルト - バイナリに埋め込み済み
テンプレートファイルには、コミットメッセージのフォーマットルール、使用可能なプレフィックス、絵文字ガイドラインなどを記述できます。
対応プロバイダー
| プロバイダー | デフォルトモデル | 環境変数 |
|---|---|---|
| OpenAI | gpt-4o-mini |
OPENAI_API_KEY |
| DeepSeek | deepseek-chat |
DEEPSEEK_API_KEY |
| Google Gemini | gemini-2.0-flash |
GEMINI_API_KEY |
開発者向け情報
必要環境
- Rust 1.70.0以上
- Git 2.0以上
ビルド方法
# 開発ビルド
# リリースビルド
# テスト実行
# フォーマット
# Lint
プロジェクト構造
src/
├── main.rs # エントリーポイント
├── lib.rs # モジュールエクスポート
├── api/
│ ├── mod.rs # クライアントファクトリ
│ ├── client.rs # LlmClient trait
│ ├── provider.rs # Provider enum(自動検出)
│ ├── openai_compatible.rs # OpenAI/DeepSeek クライアント
│ └── gemini.rs # Gemini クライアント
├── cli/ # CLIインターフェース
├── config/ # 設定管理
├── formatter/ # メッセージフォーマッター
└── git/ # Git操作
トラブルシューティング
APIキーが認識されない
# 環境変数の確認
# .envファイルの確認
使用されるプロバイダーを確認したい
-v オプションで詳細ログを出力すると、どのプロバイダーが選択されたか確認できます:
コミットが失敗する
# ステージされた変更があるか確認
# Gitの設定確認
ビルドエラー
# Rustのバージョン確認
# 依存関係の更新
貢献方法
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット(
auto-commitを使用!) - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
謝辞
- オリジナルのauto-commitプロジェクト
- OpenAI
- DeepSeek
- Google Gemini
- すべてのコントリビューター