ChatGPT を使用して Git コミット メッセージを自動化する

PHPz
リリース: 2024-09-07 14:01:02
オリジナル
1126 人が閲覧しました

Automate Your Git Commit Messages with ChatGPT

意味のある簡潔なコミット メッセージを作成することは、優れた開発ワークフローの重要な部分です。これらのメッセージは、変更の追跡、プロジェクト履歴の理解、チーム メンバーとのコラボレーションに役立ちます。しかし、それは認めましょう。コミット メッセージを書くのは、場合によっては平凡な作業になることがあります。この記事では、OpenAI の ChatGPT を使用して Git コミット メッセージを自動的に生成する方法と、macOS システム上の任意のディレクトリからこのスクリプトを実行する方法について説明します。

前提条件

この手順を進めるには、次のものが必要です:

  • Python の基礎知識
  • マシンに Git がインストールされています。
  • OpenAI のアカウントと API キー。 API キーをまだお持ちでない場合は、OpenAI API キーの作成に関するこのガイドに従って API キーを生成する方法を学習できます。

ステップ 1: 環境のセットアップ

まず、openai Python パッケージをインストールします。

pip install openai
ログイン後にコピー

次に、OpenAI API キーを環境変数として設定します。

export OPENAI_API_KEY='your_openai_api_key'
ログイン後にコピー

ステップ 2: Python スクリプトを作成する

Python スクリプトのgenerate_commit_message.py は次のとおりです。

#!/usr/bin/env python3
import subprocess
from openai import OpenAI
import os

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def get_git_diff():
    """Fetch the git changes."""
    result = subprocess.run(
        ["git", "diff", "--staged"], stdout=subprocess.PIPE, text=True
    )
    return result.stdout

def generate_commit_message(changes):
    """Use OpenAI API to generate a commit message."""
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {
                "role": "system",
                "content": "You are an assistant that generates helpful and concise git commit messages.",
            },
            {
                "role": "user",
                "content": f"Generate a Git commit message for the following changes, following the Git commit standards:\n\n{changes}",
            },
        ],
        max_tokens=350,  # Adjust as needed
        temperature=0.5,
    )
    return response.choices[0].message.content.strip()

def main():
    # Fetch the changes
    changes = get_git_diff()

    if not changes:
        print("No staged changes found.")
        return

    # Generate commit message
    commit_message = generate_commit_message(changes)
    print(f"Generated Commit Message: {commit_message}")

    # Optional: Automatically commit with the generated message
    # subprocess.run(["git", "commit", "-m", commit_message])

if __name__ == "__main__":
    main()
ログイン後にコピー

このスクリプトをgenerate_commit_message.pyという名前のファイルに保存します。

ステップ 3: スクリプトを実行可能にしてアクセス可能にする

スクリプトを実行可能にし、任意のディレクトリからアクセスできるようにするには、次の手順に従います。

  1. スクリプトを実行可能にする:

    chmod +x /path/to/your/generate_commit_message.py
    
    ログイン後にコピー
  2. スクリプトを PATH 内のディレクトリに移動します:

    sudo mv /path/to/your/generate_commit_message.py /usr/local/bin/generate_commit_message
    
    ログイン後にコピー
  3. OpenAI API キーが環境に設定されていることを確認します:
    次の行をシェル プロファイル (.bash_profile、.zshrc、または .bashrc) に追加します。

    export OPENAI_API_KEY='your_openai_api_key'
    
    ログイン後にコピー
  4. プロフィールを再読み込み:

    source ~/.bash_profile  # or source ~/.zshrc or source ~/.bashrc
    
    ログイン後にコピー

ステップ 4: スクリプトの実行

次のコマンドを実行して、変更がステージングされていることを確認します。

git add .
ログイン後にコピー

次に、任意のディレクトリからスクリプトを実行します。

generate_commit_message
ログイン後にコピー

生成されたコミット メッセージがターミナルに表示されるはずです。

結論

単純な Python スクリプトで ChatGPT を活用することで、意味のある Git コミット メッセージの生成を自動化できます。これにより、時間が節約されるだけでなく、コミット履歴が有益かつ十分に文書化されるようになります。 macOS 上の任意のディレクトリからスクリプトを実行できるようにすると、ワークフローがさらに合理化されます。ニーズに合わせてスクリプトを自由にカスタマイズしたり、機能を拡張したりできます。コーディングを楽しんでください!

以上がChatGPT を使用して Git コミット メッセージを自動化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート