ai_git_commit 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b14c761a09946ac7dccecc9a2b30c3926d4b8607de3cc030faefaf3c39341abf
4
- data.tar.gz: 389310ce83fe9f84928c8fe6cfd25e89cd79f84b73825fadca71f3f39c800ba0
3
+ metadata.gz: d0f6228c5a3c3d2070a5136aa0b507c6f6688f6e7d243c5598ae7334af6a30ff
4
+ data.tar.gz: 78840856664de65815a4679d484ec2b2f8c0aa540156e2397a837aadf726bac5
5
5
  SHA512:
6
- metadata.gz: 6ec4e82fd7e052996c45d1f9066cef2f7d3f0e54c8d8809bd0e89841026acc34e7b622cc6d11315aea333c61976da8a3f6f804634787ce03abeac58717ac6745
7
- data.tar.gz: f24abb2d10dd6453c921d86de3b802de709e77cb01f66a51220db80d8d6c11ba86783cf4e2f1053f9d0e9cf7e4ad359c0615930b1c8e430635db77272d5d6b57
6
+ metadata.gz: bc27f178fdfc351beaec4c3563645dce50cb12f0c82301eaeca2dfa4911c7a0956ad7472438128f169169a4120cf5f5cf815277919d4658136b109bc8fc0f3e2
7
+ data.tar.gz: 7b8c9caa21eb3ca04d12f4a30c0e2f43d5aa226f4b00ab50a43efe23b32f74641f5a2a4f42f1b3d818fa5bc7c3c98e4d4469ac01554308bcac5009f82b2da5a6
data/.rubocop.yml CHANGED
@@ -1,7 +1,9 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.1
2
+ TargetRubyVersion: 3.2
3
3
  Exclude:
4
4
  - 'exe/**/*'
5
+ - 'vendor/**/*'
6
+ - 'bin/*'
5
7
 
6
8
  Style/Documentation:
7
9
  Enabled: false
@@ -9,6 +9,7 @@ module AiGitCommit
9
9
  # Generates a commit message using OpenAI based on staged git diff
10
10
  # @return [String] the generated commit message or an error message
11
11
  def commit_message
12
+ return "" if ENV["SKIP_AI"]
12
13
  return "# AI skipped: OPENAI_API_KEY is not set." unless openai_api_key
13
14
 
14
15
  diff = staged_diff
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AiGitCommit
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
@@ -0,0 +1,14 @@
1
+ module AiGitCommit
2
+ class CLI < Thor
3
+ HOOK_PATH: String
4
+
5
+ def install: () -> void
6
+
7
+ private
8
+
9
+ def create_hook: () -> void
10
+ def copy_initializer: () -> void
11
+ def script: () -> ::String
12
+ def hook_file_exists?: () -> bool
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ module AiGitCommit
2
+ class Config
3
+ attr_accessor openai_api_key: String
4
+ attr_accessor model: String
5
+ attr_accessor program_language: String
6
+ attr_accessor max_tokens: Integer
7
+ attr_accessor temperature: Float
8
+ attr_accessor system_role_message: String
9
+
10
+ def initialize: () -> void
11
+ end
12
+
13
+ def self.config: () -> Config
14
+ def self.configure: () { (Config) -> void } -> void
15
+ end
@@ -0,0 +1,33 @@
1
+ module AiGitCommit
2
+ class Generator
3
+ self.@openai: OpenAI::Client
4
+ self.@config: Config
5
+
6
+ def self.commit_message: () -> String
7
+
8
+ private
9
+
10
+ def self.fetch_message: (String diff) -> String
11
+ def self.completion_payload: (String diff) -> {
12
+ model: String,
13
+ messages: ::Array[
14
+ {
15
+ role: String,
16
+ content: String
17
+ } | {
18
+ role: String,
19
+ content: String
20
+ }
21
+ ],
22
+ max_tokens: Integer,
23
+ temperature: Float
24
+ }
25
+
26
+ def self.user_role_message: (String diff) -> String
27
+ def self.openai: () -> OpenAI::Client
28
+ def self.config: () -> Config
29
+ def self.openai_api_key: () -> String?
30
+ def self.staged_diff: () -> String
31
+ end
32
+ end
33
+
@@ -1,4 +1,3 @@
1
1
  module AiGitCommit
2
2
  VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ai_git_commit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Belyaev
@@ -75,6 +75,9 @@ files:
75
75
  - lib/ai_git_commit/version.rb
76
76
  - lib/templates/ai_git_commit.rb
77
77
  - sig/ai_git_commit.rbs
78
+ - sig/ai_git_commit/cli.rbs
79
+ - sig/ai_git_commit/config.rbs
80
+ - sig/ai_git_commit/generator.rbs
78
81
  homepage: https://github.com/drkmen/ai_git_commit
79
82
  licenses:
80
83
  - MIT
@@ -90,14 +93,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
93
  requirements:
91
94
  - - ">="
92
95
  - !ruby/object:Gem::Version
93
- version: 3.1.0
96
+ version: 3.2.0
94
97
  required_rubygems_version: !ruby/object:Gem::Requirement
95
98
  requirements:
96
99
  - - ">="
97
100
  - !ruby/object:Gem::Version
98
101
  version: '0'
99
102
  requirements: []
100
- rubygems_version: 3.6.9
103
+ rubygems_version: 3.7.2
101
104
  specification_version: 4
102
105
  summary: AI Git Commit generates Git commit messages using OpenAI.
103
106
  test_files: []