commit_ai 0.1.9 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 163dcacd836441ac91cfa6903ab7795889e9db51562cbc9055bc1cddc3998dca
4
- data.tar.gz: 489a51e90bad0f1901cc751c95545e9dbb2491e72811f7773062ad8f86dd3cea
3
+ metadata.gz: aaae884c1dfa64f73d5cb60e2a0a3a6e75b47d6e50d37903a8b07b05fb03854a
4
+ data.tar.gz: 031b8944226fb4dc66008112fe05a00cccac08ae099b8df3cfbd11b187b3882d
5
5
  SHA512:
6
- metadata.gz: '010013338f7f4be32cb1a05920fa6749a953c9c15d29da3a396884baaf694ba6fd1456ab2ff9a75845f7a38938f5b0f4d58c7275a5f2074ebbe462bab3a4e22f'
7
- data.tar.gz: b6686fd820b574f4c66458abe2686b9cc168dc4c13190c19035c938e87db91ffa4a3771bd7803e7dea23ea3741081ed059fd58b9c2019934da6581cde90bcf28
6
+ metadata.gz: e7ffa87f9b280368f7b2b2618a620e91d57c0074c5a0c168336e8afd3963a82ed811f33af435a8c8112a32d72d882588958df4be732f43153256997727ce9bbf
7
+ data.tar.gz: d78e04f66ea63f02927990f6a8ab9337d4dd7e95af51e4490ab76a192cd00b2c62315c2fcad1aa7115fb1506414938215e90430dd7c6eb9b45e957669864799a
data/exe/commit_ai CHANGED
@@ -4,9 +4,10 @@
4
4
  $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
5
5
 
6
6
  require 'commit_ai'
7
+ require 'colorize'
7
8
 
8
9
  if ENV['OPENAI_ACCESS_TOKEN'].nil?
9
- puts "OPENAI_ACCESS_TOKEN is not set. Please set it in your environment variables."
10
+ puts "OPENAI_ACCESS_TOKEN is not set. Please set it in your environment variables.".colorize(:red)
10
11
  exit
11
12
  end
12
13
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CommitAi
4
- VERSION = "0.1.9"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/commit_ai.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'openai'
2
+ require 'colorize'
2
3
 
3
4
  class CommitAI
4
5
  def initialize
@@ -10,34 +11,43 @@ class CommitAI
10
11
  diff = `git diff -U10 --staged`
11
12
 
12
13
  if diff.empty?
13
- puts "No changes to commit."
14
+ puts "No changes to commit. No need to proceed.".colorize(:red)
14
15
  return
15
16
  end
16
17
 
17
- puts "Please provide a brief description of the change made (optional): "
18
+ puts "Please provide a brief description of the change made (optional):".colorize(:cyan)
18
19
  user_description = STDIN.gets.chomp
19
20
 
20
- puts "Do you want a multi-line commit message? (y/n) (optional): "
21
+ puts "Do you want a multi-line commit message? (y/n) (optional):".colorize(:cyan)
21
22
  message_style_input = STDIN.gets.chomp.downcase
22
23
  message_style = message_style_input == 'y' ? 'multi' : 'single'
23
24
 
25
+ commit_message = generate_commit_message(diff, message_style, user_description)
24
26
  loop do
25
- commit_message = generate_commit_message(diff, message_style, user_description)
26
- puts "Generated Commit Message:\n#{commit_message}"
27
- print "Do you want to proceed with the commit? (y/n), regenerate (r), or edit (e): "
27
+ puts "\nGenerated Commit Message:\n#{commit_message}".colorize(:green)
28
+ puts ""
29
+ puts "Do you want to proceed with the commit? (y/n), regenerate (r), or edit (e):".colorize(:cyan)
28
30
  response = STDIN.gets.chomp
29
31
  case response.downcase
30
32
  when 'y'
31
33
  system("git commit -m '#{commit_message}'")
34
+ puts "Commit successful!".colorize(:green)
32
35
  break
33
36
  when 'r'
37
+ commit_message = generate_commit_message(diff, message_style, user_description)
38
+ puts "Regenerating commit message...".colorize(:yellow)
34
39
  next
35
40
  when 'e'
36
41
  system("git commit -m '#{commit_message}' -e")
42
+ puts "Commit successful after editing!".colorize(:green)
37
43
  break
38
- else
39
- puts "Commit aborted."
44
+ when 'n'
45
+ puts "Commit aborted. No changes committed.".colorize(:red)
40
46
  break
47
+ else
48
+ puts "Invalid input. Please try again.".colorize(:red)
49
+ puts ""
50
+ next
41
51
  end
42
52
  end
43
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: commit_ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Vitug
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-05 00:00:00.000000000 Z
11
+ date: 2024-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-openai
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: colorize
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: Commit AI automates the generation of insightful single-line and multi-line
28
42
  commit messages by analyzing staged git diffs with OpenAI's advanced language models.
29
43
  It allows users to provide optional change descriptions for better context, and