commit_ai 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/exe/commit_ai +2 -1
- data/lib/commit_ai/version.rb +1 -1
- data/lib/commit_ai.rb +11 -14
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aaae884c1dfa64f73d5cb60e2a0a3a6e75b47d6e50d37903a8b07b05fb03854a
|
4
|
+
data.tar.gz: 031b8944226fb4dc66008112fe05a00cccac08ae099b8df3cfbd11b187b3882d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
data/lib/commit_ai/version.rb
CHANGED
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,41 +11,41 @@ class CommitAI
|
|
10
11
|
diff = `git diff -U10 --staged`
|
11
12
|
|
12
13
|
if diff.empty?
|
13
|
-
puts
|
14
|
+
puts "No changes to commit. No need to proceed.".colorize(:red)
|
14
15
|
return
|
15
16
|
end
|
16
17
|
|
17
|
-
puts
|
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
|
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
|
|
24
25
|
commit_message = generate_commit_message(diff, message_style, user_description)
|
25
26
|
loop do
|
26
|
-
puts
|
27
|
+
puts "\nGenerated Commit Message:\n#{commit_message}".colorize(:green)
|
27
28
|
puts ""
|
28
|
-
puts
|
29
|
+
puts "Do you want to proceed with the commit? (y/n), regenerate (r), or edit (e):".colorize(:cyan)
|
29
30
|
response = STDIN.gets.chomp
|
30
31
|
case response.downcase
|
31
32
|
when 'y'
|
32
33
|
system("git commit -m '#{commit_message}'")
|
33
|
-
puts
|
34
|
+
puts "Commit successful!".colorize(:green)
|
34
35
|
break
|
35
36
|
when 'r'
|
36
37
|
commit_message = generate_commit_message(diff, message_style, user_description)
|
37
|
-
puts
|
38
|
+
puts "Regenerating commit message...".colorize(:yellow)
|
38
39
|
next
|
39
40
|
when 'e'
|
40
41
|
system("git commit -m '#{commit_message}' -e")
|
41
|
-
puts
|
42
|
+
puts "Commit successful after editing!".colorize(:green)
|
42
43
|
break
|
43
44
|
when 'n'
|
44
|
-
puts
|
45
|
+
puts "Commit aborted. No changes committed.".colorize(:red)
|
45
46
|
break
|
46
47
|
else
|
47
|
-
puts
|
48
|
+
puts "Invalid input. Please try again.".colorize(:red)
|
48
49
|
puts ""
|
49
50
|
next
|
50
51
|
end
|
@@ -116,8 +117,4 @@ class CommitAI
|
|
116
117
|
|
117
118
|
minified_diff.join
|
118
119
|
end
|
119
|
-
|
120
|
-
def colorize(text, color_code)
|
121
|
-
"\e[#{color_code}m#{text}\e[0m"
|
122
|
-
end
|
123
120
|
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.2.
|
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-
|
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
|