Class: CommitMsgAi::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/commit_msg_ai.rb

Overview

This class interacts with the Commit Message AI service to process and generate meaningful commit messages based on staged changes in the repository.

Instance Method Summary collapse

Constructor Details

#initialize(api_token) ⇒ Client

Returns a new instance of Client.



12
13
14
15
16
17
# File 'lib/commit_msg_ai.rb', line 12

def initialize(api_token)
  @client = OpenAI::Client.new(
    access_token: api_token,
    log_errors: true
  )
end

Instance Method Details

#generate_commit_message(diff) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/commit_msg_ai.rb', line 19

def generate_commit_message(diff)
  prompt = generate_prompt(diff)
  response = @client.chat(
    parameters: {
      model: 'gpt-3.5-turbo-0125',
      messages: [
        { role: 'system', content: 'You are an assistant generating Git commit messages.' },
        { role: 'user', content: prompt }
      ]
    }
  )
  response.dig('choices', 0, 'message', 'content') || 'Error: Unable to generate commit message.'
rescue StandardError => e
  "Error communicating with OpenAI API: #{e.message}"
end