autogitc 0.1.4 → 0.1.5
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/bin/autogitc +2 -1
- data/lib/autogitc.rb +7 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8338488482249d5ff2943379b1149b5da9db670f57821c6d827b1ba4b1c3f601
|
4
|
+
data.tar.gz: 271f9833f533852180a7598a0710006765a11b108a0d20d6876bb0b0985f81ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d182292cf4a0fe32fc1bb27e886a50a21a813a66902e07ee9557dbb6a6a3dc03f261723b2976414eddb990096f1cdaf3b4664cfb98c94e66d500cf96e8a0f1b
|
7
|
+
data.tar.gz: fcd92b63be81c3aae8b0678aea18b062cfffc5f070d18e280ce0133b59b44401d9f786fcccfefa41251d09f6a98add35f4c8614eb405264f3e6f18bdf2e41ac1
|
data/bin/autogitc
CHANGED
@@ -3,6 +3,7 @@ require 'bundler/setup'
|
|
3
3
|
require_relative '../lib/autogitc'
|
4
4
|
|
5
5
|
no_commit = ARGV.include?('--nocommit') || ARGV.include?('--nc')
|
6
|
+
must_have_text = ARGV.find { |arg| arg.start_with?('--text=') }&.split('=')&.last
|
6
7
|
|
7
8
|
puts 'Running autogitc...'
|
8
|
-
Autogitc.main(no_commit: no_commit)
|
9
|
+
Autogitc.main(no_commit: no_commit, must_have_text: must_have_text)
|
data/lib/autogitc.rb
CHANGED
@@ -15,7 +15,7 @@ module Autogitc
|
|
15
15
|
`git diff --staged #{file_path}`
|
16
16
|
end
|
17
17
|
|
18
|
-
def self.generate_commit_message(changes_summary)
|
18
|
+
def self.generate_commit_message(changes_summary:, must_have_text: nil)
|
19
19
|
uri = URI('https://api.openai.com/v1/chat/completions')
|
20
20
|
|
21
21
|
http = Net::HTTP.new(uri.host, uri.port)
|
@@ -37,7 +37,7 @@ module Autogitc
|
|
37
37
|
},
|
38
38
|
{
|
39
39
|
role: 'user',
|
40
|
-
content: "Generate a conventional git commit message limited to 72 characters for the following changes in a JSON format with a key 'commit_message':\n\n#{changes_summary}"
|
40
|
+
content: "Generate a conventional git commit message limited to 72 characters for the following changes in a JSON format with a key 'commit_message', ensuring it includes the text: '#{must_have_text}':\n\n#{changes_summary}"
|
41
41
|
}
|
42
42
|
],
|
43
43
|
response_format: { "type": 'json_object' }
|
@@ -49,7 +49,7 @@ module Autogitc
|
|
49
49
|
JSON.parse(output_text)['commit_message']
|
50
50
|
end
|
51
51
|
|
52
|
-
def self.main(no_commit: false)
|
52
|
+
def self.main(no_commit: false, must_have_text: nil)
|
53
53
|
if openai_api_key.nil?
|
54
54
|
puts 'No AUTOGITC_KEY key found in environment variables.'
|
55
55
|
return
|
@@ -67,7 +67,10 @@ module Autogitc
|
|
67
67
|
"Changes in #{file}:\n#{diff}\n"
|
68
68
|
end.join("\n")
|
69
69
|
|
70
|
-
commit_message = generate_commit_message(
|
70
|
+
commit_message = generate_commit_message(
|
71
|
+
changes_summary: changes_summary,
|
72
|
+
must_have_text: must_have_text
|
73
|
+
)
|
71
74
|
puts 'Generated commit message:'
|
72
75
|
puts commit_message
|
73
76
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autogitc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Goh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: This gem simplifies the commit process by automatically generating descriptive
|
14
14
|
commit messages based on the files that have been added to the Git staging area.
|