makit 0.0.144 → 0.0.145
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/README.md +41 -41
- data/exe/makit +5 -5
- data/lib/makit/apache.rb +28 -28
- data/lib/makit/auto.rb +48 -48
- data/lib/makit/cli/base.rb +17 -0
- data/lib/makit/cli/build_commands.rb +500 -500
- data/lib/makit/cli/generators/base_generator.rb +74 -74
- data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
- data/lib/makit/cli/generators/generator_factory.rb +49 -49
- data/lib/makit/cli/generators/node_generator.rb +50 -50
- data/lib/makit/cli/generators/ruby_generator.rb +77 -77
- data/lib/makit/cli/generators/rust_generator.rb +50 -50
- data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
- data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
- data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
- data/lib/makit/cli/generators/templates/ruby/gemspec.rb +41 -40
- data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
- data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
- data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
- data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
- data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
- data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
- data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
- data/lib/makit/cli/main.rb +78 -69
- data/lib/makit/cli/pipeline_commands.rb +311 -0
- data/lib/makit/cli/project_commands.rb +868 -868
- data/lib/makit/cli/repository_commands.rb +661 -661
- data/lib/makit/cli/strategy_commands.rb +207 -212
- data/lib/makit/cli/utility_commands.rb +521 -521
- data/lib/makit/commands/factory.rb +359 -359
- data/lib/makit/commands/middleware/base.rb +73 -73
- data/lib/makit/commands/middleware/cache.rb +248 -248
- data/lib/makit/commands/middleware/command_logger.rb +312 -312
- data/lib/makit/commands/middleware/validator.rb +269 -269
- data/lib/makit/commands/request.rb +316 -316
- data/lib/makit/commands/result.rb +323 -323
- data/lib/makit/commands/runner.rb +386 -386
- data/lib/makit/commands/strategies/base.rb +171 -171
- data/lib/makit/commands/strategies/child_process.rb +162 -162
- data/lib/makit/commands/strategies/factory.rb +136 -136
- data/lib/makit/commands/strategies/synchronous.rb +139 -139
- data/lib/makit/commands.rb +50 -50
- data/lib/makit/configuration/dotnet_project.rb +48 -48
- data/lib/makit/configuration/gitlab_helper.rb +61 -58
- data/lib/makit/configuration/project.rb +446 -168
- data/lib/makit/configuration/rakefile_helper.rb +43 -43
- data/lib/makit/configuration/step.rb +34 -34
- data/lib/makit/configuration/timeout.rb +74 -74
- data/lib/makit/configuration.rb +21 -16
- data/lib/makit/content/default_gitignore.rb +7 -7
- data/lib/makit/content/default_gitignore.txt +225 -225
- data/lib/makit/content/default_rakefile.rb +13 -13
- data/lib/makit/content/gem_rakefile.rb +16 -16
- data/lib/makit/context.rb +1 -1
- data/lib/makit/data.rb +49 -49
- data/lib/makit/directories.rb +140 -140
- data/lib/makit/directory.rb +262 -262
- data/lib/makit/docs/files.rb +89 -89
- data/lib/makit/docs/rake.rb +102 -102
- data/lib/makit/dotnet/cli.rb +69 -69
- data/lib/makit/dotnet/project.rb +217 -217
- data/lib/makit/dotnet/solution.rb +38 -38
- data/lib/makit/dotnet/solution_classlib.rb +239 -239
- data/lib/makit/dotnet/solution_console.rb +264 -264
- data/lib/makit/dotnet/solution_maui.rb +354 -354
- data/lib/makit/dotnet/solution_wasm.rb +275 -275
- data/lib/makit/dotnet/solution_wpf.rb +304 -304
- data/lib/makit/dotnet.rb +102 -102
- data/lib/makit/email.rb +90 -90
- data/lib/makit/environment.rb +142 -142
- data/lib/makit/examples/runner.rb +370 -370
- data/lib/makit/exceptions.rb +45 -45
- data/lib/makit/fileinfo.rb +32 -24
- data/lib/makit/files.rb +43 -43
- data/lib/makit/gems.rb +40 -40
- data/lib/makit/git/cli.rb +54 -54
- data/lib/makit/git/repository.rb +266 -90
- data/lib/makit/git.rb +104 -98
- data/lib/makit/gitlab/pipeline.rb +857 -0
- data/lib/makit/gitlab/pipeline_service_impl.rb +1536 -0
- data/lib/makit/gitlab_runner.rb +59 -59
- data/lib/makit/humanize.rb +218 -137
- data/lib/makit/indexer.rb +47 -47
- data/lib/makit/io/filesystem.rb +111 -0
- data/lib/makit/io/filesystem_service_impl.rb +337 -0
- data/lib/makit/logging/configuration.rb +308 -308
- data/lib/makit/logging/format_registry.rb +84 -84
- data/lib/makit/logging/formatters/base.rb +39 -39
- data/lib/makit/logging/formatters/console_formatter.rb +140 -140
- data/lib/makit/logging/formatters/json_formatter.rb +65 -65
- data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
- data/lib/makit/logging/formatters/text_formatter.rb +64 -64
- data/lib/makit/logging/log_request.rb +119 -119
- data/lib/makit/logging/logger.rb +199 -199
- data/lib/makit/logging/sinks/base.rb +91 -91
- data/lib/makit/logging/sinks/console.rb +72 -72
- data/lib/makit/logging/sinks/file_sink.rb +92 -92
- data/lib/makit/logging/sinks/structured.rb +123 -123
- data/lib/makit/logging/sinks/unified_file_sink.rb +296 -296
- data/lib/makit/logging.rb +565 -565
- data/lib/makit/markdown.rb +75 -75
- data/lib/makit/mp/basic_object_mp.rb +17 -17
- data/lib/makit/mp/command_mp.rb +13 -13
- data/lib/makit/mp/command_request.mp.rb +17 -17
- data/lib/makit/mp/project_mp.rb +199 -199
- data/lib/makit/mp/string_mp.rb +205 -199
- data/lib/makit/nuget.rb +74 -74
- data/lib/makit/podman/podman.rb +458 -0
- data/lib/makit/podman/podman_service_impl.rb +1081 -0
- data/lib/makit/port.rb +32 -32
- data/lib/makit/process.rb +377 -377
- data/lib/makit/protoc.rb +112 -107
- data/lib/makit/rake/cli.rb +196 -196
- data/lib/makit/rake/trace_controller.rb +174 -174
- data/lib/makit/rake.rb +81 -81
- data/lib/makit/ruby/cli.rb +185 -185
- data/lib/makit/ruby.rb +25 -25
- data/lib/makit/secrets.rb +51 -51
- data/lib/makit/serializer.rb +130 -130
- data/lib/makit/services/builder.rb +186 -186
- data/lib/makit/services/error_handler.rb +226 -226
- data/lib/makit/services/repository_manager.rb +367 -231
- data/lib/makit/services/validator.rb +112 -112
- data/lib/makit/setup/classlib.rb +101 -101
- data/lib/makit/setup/gem.rb +268 -268
- data/lib/makit/setup/pages.rb +11 -11
- data/lib/makit/setup/razorclasslib.rb +101 -101
- data/lib/makit/setup/runner.rb +54 -54
- data/lib/makit/setup.rb +5 -5
- data/lib/makit/show.rb +110 -110
- data/lib/makit/storage.rb +126 -126
- data/lib/makit/symbols.rb +175 -170
- data/lib/makit/task_info.rb +130 -130
- data/lib/makit/tasks/at_exit.rb +15 -15
- data/lib/makit/tasks/build.rb +22 -22
- data/lib/makit/tasks/clean.rb +13 -13
- data/lib/makit/tasks/configure.rb +10 -10
- data/lib/makit/tasks/format.rb +10 -10
- data/lib/makit/tasks/hook_manager.rb +443 -443
- data/lib/makit/tasks/init.rb +49 -49
- data/lib/makit/tasks/integrate.rb +29 -29
- data/lib/makit/tasks/pull_incoming.rb +13 -13
- data/lib/makit/tasks/setup.rb +16 -16
- data/lib/makit/tasks/sync.rb +17 -17
- data/lib/makit/tasks/tag.rb +16 -16
- data/lib/makit/tasks/task_monkey_patch.rb +81 -81
- data/lib/makit/tasks/test.rb +22 -22
- data/lib/makit/tasks/update.rb +18 -18
- data/lib/makit/tasks.rb +20 -20
- data/lib/makit/test_cache.rb +239 -239
- data/lib/makit/tree.rb +37 -37
- data/lib/makit/v1/configuration/project_service_impl.rb +371 -0
- data/lib/makit/v1/git/git_repository_service_impl.rb +295 -0
- data/lib/makit/v1/makit.v1_pb.rb +35 -35
- data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
- data/lib/makit/v1/services/repository_manager_service_impl.rb +572 -0
- data/lib/makit/version.rb +100 -100
- data/lib/makit/version_util.rb +21 -21
- data/lib/makit/wix.rb +95 -95
- data/lib/makit/yaml.rb +29 -29
- data/lib/makit/zip.rb +17 -17
- data/lib/makit copy.rb +44 -44
- data/lib/makit.rb +111 -43
- metadata +61 -36
data/lib/makit/git/repository.rb
CHANGED
|
@@ -1,90 +1,266 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Only load gRPC service implementation if generated files exist
|
|
4
|
+
if File.exist?(File.join(__dir__, "..", "generated", "makit", "v1", "git", "git_repository_service_services_pb.rb"))
|
|
5
|
+
require_relative "../v1/git/git_repository_service_impl"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# This module provides classes for the Makit gem.
|
|
9
|
+
module Makit
|
|
10
|
+
class Git
|
|
11
|
+
# This class provides methods for querying git repository state and metadata.
|
|
12
|
+
# Now delegates to gRPC service implementation for better scalability and consistency.
|
|
13
|
+
class Repository
|
|
14
|
+
# Check if gRPC service is available
|
|
15
|
+
@grpc_available = defined?(Makit::V1::Git::GitRepositoryServiceImpl)
|
|
16
|
+
|
|
17
|
+
# Get current repository state via gRPC service
|
|
18
|
+
def self.get_repository_state
|
|
19
|
+
if @grpc_available
|
|
20
|
+
service = Makit::V1::Git::GitRepositoryServiceImpl.new
|
|
21
|
+
request = Makit::V1::Git::GetRepositoryStateRequest.new
|
|
22
|
+
service.get_repository_state(request, nil)
|
|
23
|
+
else
|
|
24
|
+
# Fallback implementation
|
|
25
|
+
create_fallback_repository_state
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Delegate all static methods to gRPC service
|
|
30
|
+
def self.git_repo?
|
|
31
|
+
if @grpc_available
|
|
32
|
+
get_repository_state.is_git_repo
|
|
33
|
+
else
|
|
34
|
+
Dir.exist?(".git")
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.ci?
|
|
39
|
+
if @grpc_available
|
|
40
|
+
get_repository_state.is_ci
|
|
41
|
+
else
|
|
42
|
+
ENV["CI"] == "true"
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def self.detached
|
|
47
|
+
if @grpc_available
|
|
48
|
+
get_repository_state.is_detached
|
|
49
|
+
else
|
|
50
|
+
`git status`.include?("detached") rescue false
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def self.read_only?
|
|
55
|
+
if @grpc_available
|
|
56
|
+
get_repository_state.is_read_only
|
|
57
|
+
else
|
|
58
|
+
!git_repo? || detached
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def self.clean?
|
|
63
|
+
if @grpc_available
|
|
64
|
+
get_repository_state.is_clean
|
|
65
|
+
else
|
|
66
|
+
`git status --porcelain`.empty? rescue true
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def self.unstaged_files
|
|
71
|
+
if @grpc_available
|
|
72
|
+
get_repository_state.unstaged_files.to_a
|
|
73
|
+
else
|
|
74
|
+
`git status --porcelain`.split("\n") rescue []
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def self.untracked_files
|
|
79
|
+
if @grpc_available
|
|
80
|
+
get_repository_state.untracked_files.to_a
|
|
81
|
+
else
|
|
82
|
+
`git ls-files --others --exclude-standard`.split("\n") rescue []
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def self.get_file_infos
|
|
87
|
+
if @grpc_available
|
|
88
|
+
proto_file_infos = get_repository_state.tracked_file_infos
|
|
89
|
+
convert_file_infos_from_proto(proto_file_infos)
|
|
90
|
+
else
|
|
91
|
+
# Fallback implementation
|
|
92
|
+
file_list = `git ls-files`.split("\n") rescue []
|
|
93
|
+
file_list.map do |file|
|
|
94
|
+
Makit::FileInfo.new(
|
|
95
|
+
name: file,
|
|
96
|
+
mtime: File.mtime(file),
|
|
97
|
+
size: File.size(file)
|
|
98
|
+
)
|
|
99
|
+
rescue StandardError
|
|
100
|
+
nil
|
|
101
|
+
end.compact.sort_by(&:mtime).reverse
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def self.get_untracked_file_infos
|
|
106
|
+
if @grpc_available
|
|
107
|
+
proto_file_infos = get_repository_state.untracked_file_infos
|
|
108
|
+
convert_file_infos_from_proto(proto_file_infos)
|
|
109
|
+
else
|
|
110
|
+
# Fallback implementation
|
|
111
|
+
file_list = `git ls-files --others --exclude-standard`.split("\n") rescue []
|
|
112
|
+
file_list.map do |file|
|
|
113
|
+
Makit::FileInfo.new(
|
|
114
|
+
name: file,
|
|
115
|
+
mtime: File.mtime(file),
|
|
116
|
+
size: File.size(file)
|
|
117
|
+
)
|
|
118
|
+
rescue StandardError
|
|
119
|
+
nil
|
|
120
|
+
end.compact.sort_by(&:mtime).reverse
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def self.branch
|
|
125
|
+
if @grpc_available
|
|
126
|
+
get_repository_state.branch
|
|
127
|
+
else
|
|
128
|
+
`git branch --show-current`.strip rescue ""
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def self.commitsha
|
|
133
|
+
if @grpc_available
|
|
134
|
+
get_repository_state.commit_sha
|
|
135
|
+
else
|
|
136
|
+
`git rev-parse HEAD`.strip rescue ""
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def self.commitmsg
|
|
141
|
+
if @grpc_available
|
|
142
|
+
get_repository_state.commit_message
|
|
143
|
+
else
|
|
144
|
+
`git log -1 --pretty=%B`.strip rescue ""
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def self.commitdate
|
|
149
|
+
if @grpc_available
|
|
150
|
+
get_repository_state.commit_date
|
|
151
|
+
else
|
|
152
|
+
`git log -1 --pretty=%cd`.strip rescue ""
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def self.commitauthor
|
|
157
|
+
if @grpc_available
|
|
158
|
+
get_repository_state.commit_author
|
|
159
|
+
else
|
|
160
|
+
`git log -1 --pretty=%an`.strip rescue ""
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def self.commitemail
|
|
165
|
+
if @grpc_available
|
|
166
|
+
get_repository_state.commit_email
|
|
167
|
+
else
|
|
168
|
+
`git log -1 --pretty=%ae`.strip rescue ""
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def self.get_remote_url
|
|
173
|
+
if @grpc_available
|
|
174
|
+
get_repository_state.remote_url
|
|
175
|
+
else
|
|
176
|
+
`git remote get-url origin`.strip rescue ""
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
private
|
|
181
|
+
|
|
182
|
+
# Create a fallback repository state object
|
|
183
|
+
def self.create_fallback_repository_state
|
|
184
|
+
# Create a simple object that mimics the protobuf model interface
|
|
185
|
+
state = Object.new
|
|
186
|
+
|
|
187
|
+
def state.is_git_repo
|
|
188
|
+
@is_git_repo ||= Dir.exist?(".git")
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def state.is_ci
|
|
192
|
+
@is_ci ||= ENV["CI"] == "true"
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def state.is_detached
|
|
196
|
+
@is_detached ||= `git status`.include?("detached") rescue false
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def state.is_read_only
|
|
200
|
+
@is_read_only ||= !is_git_repo || is_detached
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def state.is_clean
|
|
204
|
+
@is_clean ||= `git status --porcelain`.empty? rescue true
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def state.unstaged_files
|
|
208
|
+
@unstaged_files ||= `git status --porcelain`.split("\n") rescue []
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def state.untracked_files
|
|
212
|
+
@untracked_files ||= `git ls-files --others --exclude-standard`.split("\n") rescue []
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def state.tracked_file_infos
|
|
216
|
+
@tracked_file_infos ||= []
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def state.untracked_file_infos
|
|
220
|
+
@untracked_file_infos ||= []
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def state.branch
|
|
224
|
+
@branch ||= `git branch --show-current`.strip rescue ""
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def state.commit_sha
|
|
228
|
+
@commit_sha ||= `git rev-parse HEAD`.strip rescue ""
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def state.commit_message
|
|
232
|
+
@commit_message ||= `git log -1 --pretty=%B`.strip rescue ""
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
def state.commit_date
|
|
236
|
+
@commit_date ||= `git log -1 --pretty=%cd`.strip rescue ""
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
def state.commit_author
|
|
240
|
+
@commit_author ||= `git log -1 --pretty=%an`.strip rescue ""
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
def state.commit_email
|
|
244
|
+
@commit_email ||= `git log -1 --pretty=%ae`.strip rescue ""
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
def state.remote_url
|
|
248
|
+
@remote_url ||= `git remote get-url origin`.strip rescue ""
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
state
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# Convert protobuf FileInfo objects to Ruby FileInfo objects
|
|
255
|
+
def self.convert_file_infos_from_proto(proto_file_infos)
|
|
256
|
+
proto_file_infos.map do |proto_file_info|
|
|
257
|
+
Makit::FileInfo.new(
|
|
258
|
+
name: proto_file_info.name,
|
|
259
|
+
mtime: Time.at(proto_file_info.mtime.seconds, proto_file_info.mtime.nanos, :nsec),
|
|
260
|
+
size: proto_file_info.size
|
|
261
|
+
)
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
end
|
data/lib/makit/git.rb
CHANGED
|
@@ -1,98 +1,104 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "git/repository"
|
|
4
|
-
require_relative "git/cli"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "git/repository"
|
|
4
|
+
require_relative "git/cli"
|
|
5
|
+
require_relative "fileinfo"
|
|
6
|
+
|
|
7
|
+
# Only load gRPC service implementation if generated files exist
|
|
8
|
+
if File.exist?(File.join(__dir__, "generated", "makit", "v1", "git", "git_repository_service_services_pb.rb"))
|
|
9
|
+
require_relative "v1/git/git_repository_service_impl"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# This module provides classes for the Makit gem.
|
|
13
|
+
module Makit
|
|
14
|
+
# This class provides a unified interface for git operations.
|
|
15
|
+
# Methods have been organized into Repository (state/metadata) and CLI (commands) classes.
|
|
16
|
+
#
|
|
17
|
+
class Git
|
|
18
|
+
# Delegate repository state and metadata methods to Repository class
|
|
19
|
+
def self.git_repo?
|
|
20
|
+
Repository.git_repo?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.ci?
|
|
24
|
+
Repository.ci?
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.detached
|
|
28
|
+
Repository.detached
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.read_only?
|
|
32
|
+
Repository.read_only?
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.clean?
|
|
36
|
+
Repository.clean?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.unstaged_files
|
|
40
|
+
Repository.unstaged_files
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def self.untracked_files
|
|
44
|
+
Repository.untracked_files
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.get_file_infos
|
|
48
|
+
Repository.get_file_infos
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def self.get_untracked_file_infos
|
|
52
|
+
Repository.get_untracked_file_infos
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def self.branch
|
|
56
|
+
Repository.branch
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def self.commitsha
|
|
60
|
+
Repository.commitsha
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def self.commitmsg
|
|
64
|
+
Repository.commitmsg
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def self.commitdate
|
|
68
|
+
Repository.commitdate
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.commitauthor
|
|
72
|
+
Repository.commitauthor
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def self.commitemail
|
|
76
|
+
Repository.commitemail
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def self.get_remote_url
|
|
80
|
+
Repository.get_remote_url
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Delegate command execution methods to CLI class
|
|
84
|
+
def self.integrate
|
|
85
|
+
CLI.integrate
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def self.sync
|
|
89
|
+
CLI.sync
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def self.pull
|
|
93
|
+
CLI.pull
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def self.zip_source_files(zipfilename)
|
|
97
|
+
CLI.zip_source_files(zipfilename)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def self.tag(version)
|
|
101
|
+
CLI.tag(version)
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|