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.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -41
  3. data/exe/makit +5 -5
  4. data/lib/makit/apache.rb +28 -28
  5. data/lib/makit/auto.rb +48 -48
  6. data/lib/makit/cli/base.rb +17 -0
  7. data/lib/makit/cli/build_commands.rb +500 -500
  8. data/lib/makit/cli/generators/base_generator.rb +74 -74
  9. data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
  10. data/lib/makit/cli/generators/generator_factory.rb +49 -49
  11. data/lib/makit/cli/generators/node_generator.rb +50 -50
  12. data/lib/makit/cli/generators/ruby_generator.rb +77 -77
  13. data/lib/makit/cli/generators/rust_generator.rb +50 -50
  14. data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
  15. data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
  16. data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
  17. data/lib/makit/cli/generators/templates/ruby/gemspec.rb +41 -40
  18. data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
  19. data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
  20. data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
  21. data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
  22. data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
  23. data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
  24. data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
  25. data/lib/makit/cli/main.rb +78 -69
  26. data/lib/makit/cli/pipeline_commands.rb +311 -0
  27. data/lib/makit/cli/project_commands.rb +868 -868
  28. data/lib/makit/cli/repository_commands.rb +661 -661
  29. data/lib/makit/cli/strategy_commands.rb +207 -212
  30. data/lib/makit/cli/utility_commands.rb +521 -521
  31. data/lib/makit/commands/factory.rb +359 -359
  32. data/lib/makit/commands/middleware/base.rb +73 -73
  33. data/lib/makit/commands/middleware/cache.rb +248 -248
  34. data/lib/makit/commands/middleware/command_logger.rb +312 -312
  35. data/lib/makit/commands/middleware/validator.rb +269 -269
  36. data/lib/makit/commands/request.rb +316 -316
  37. data/lib/makit/commands/result.rb +323 -323
  38. data/lib/makit/commands/runner.rb +386 -386
  39. data/lib/makit/commands/strategies/base.rb +171 -171
  40. data/lib/makit/commands/strategies/child_process.rb +162 -162
  41. data/lib/makit/commands/strategies/factory.rb +136 -136
  42. data/lib/makit/commands/strategies/synchronous.rb +139 -139
  43. data/lib/makit/commands.rb +50 -50
  44. data/lib/makit/configuration/dotnet_project.rb +48 -48
  45. data/lib/makit/configuration/gitlab_helper.rb +61 -58
  46. data/lib/makit/configuration/project.rb +446 -168
  47. data/lib/makit/configuration/rakefile_helper.rb +43 -43
  48. data/lib/makit/configuration/step.rb +34 -34
  49. data/lib/makit/configuration/timeout.rb +74 -74
  50. data/lib/makit/configuration.rb +21 -16
  51. data/lib/makit/content/default_gitignore.rb +7 -7
  52. data/lib/makit/content/default_gitignore.txt +225 -225
  53. data/lib/makit/content/default_rakefile.rb +13 -13
  54. data/lib/makit/content/gem_rakefile.rb +16 -16
  55. data/lib/makit/context.rb +1 -1
  56. data/lib/makit/data.rb +49 -49
  57. data/lib/makit/directories.rb +140 -140
  58. data/lib/makit/directory.rb +262 -262
  59. data/lib/makit/docs/files.rb +89 -89
  60. data/lib/makit/docs/rake.rb +102 -102
  61. data/lib/makit/dotnet/cli.rb +69 -69
  62. data/lib/makit/dotnet/project.rb +217 -217
  63. data/lib/makit/dotnet/solution.rb +38 -38
  64. data/lib/makit/dotnet/solution_classlib.rb +239 -239
  65. data/lib/makit/dotnet/solution_console.rb +264 -264
  66. data/lib/makit/dotnet/solution_maui.rb +354 -354
  67. data/lib/makit/dotnet/solution_wasm.rb +275 -275
  68. data/lib/makit/dotnet/solution_wpf.rb +304 -304
  69. data/lib/makit/dotnet.rb +102 -102
  70. data/lib/makit/email.rb +90 -90
  71. data/lib/makit/environment.rb +142 -142
  72. data/lib/makit/examples/runner.rb +370 -370
  73. data/lib/makit/exceptions.rb +45 -45
  74. data/lib/makit/fileinfo.rb +32 -24
  75. data/lib/makit/files.rb +43 -43
  76. data/lib/makit/gems.rb +40 -40
  77. data/lib/makit/git/cli.rb +54 -54
  78. data/lib/makit/git/repository.rb +266 -90
  79. data/lib/makit/git.rb +104 -98
  80. data/lib/makit/gitlab/pipeline.rb +857 -0
  81. data/lib/makit/gitlab/pipeline_service_impl.rb +1536 -0
  82. data/lib/makit/gitlab_runner.rb +59 -59
  83. data/lib/makit/humanize.rb +218 -137
  84. data/lib/makit/indexer.rb +47 -47
  85. data/lib/makit/io/filesystem.rb +111 -0
  86. data/lib/makit/io/filesystem_service_impl.rb +337 -0
  87. data/lib/makit/logging/configuration.rb +308 -308
  88. data/lib/makit/logging/format_registry.rb +84 -84
  89. data/lib/makit/logging/formatters/base.rb +39 -39
  90. data/lib/makit/logging/formatters/console_formatter.rb +140 -140
  91. data/lib/makit/logging/formatters/json_formatter.rb +65 -65
  92. data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
  93. data/lib/makit/logging/formatters/text_formatter.rb +64 -64
  94. data/lib/makit/logging/log_request.rb +119 -119
  95. data/lib/makit/logging/logger.rb +199 -199
  96. data/lib/makit/logging/sinks/base.rb +91 -91
  97. data/lib/makit/logging/sinks/console.rb +72 -72
  98. data/lib/makit/logging/sinks/file_sink.rb +92 -92
  99. data/lib/makit/logging/sinks/structured.rb +123 -123
  100. data/lib/makit/logging/sinks/unified_file_sink.rb +296 -296
  101. data/lib/makit/logging.rb +565 -565
  102. data/lib/makit/markdown.rb +75 -75
  103. data/lib/makit/mp/basic_object_mp.rb +17 -17
  104. data/lib/makit/mp/command_mp.rb +13 -13
  105. data/lib/makit/mp/command_request.mp.rb +17 -17
  106. data/lib/makit/mp/project_mp.rb +199 -199
  107. data/lib/makit/mp/string_mp.rb +205 -199
  108. data/lib/makit/nuget.rb +74 -74
  109. data/lib/makit/podman/podman.rb +458 -0
  110. data/lib/makit/podman/podman_service_impl.rb +1081 -0
  111. data/lib/makit/port.rb +32 -32
  112. data/lib/makit/process.rb +377 -377
  113. data/lib/makit/protoc.rb +112 -107
  114. data/lib/makit/rake/cli.rb +196 -196
  115. data/lib/makit/rake/trace_controller.rb +174 -174
  116. data/lib/makit/rake.rb +81 -81
  117. data/lib/makit/ruby/cli.rb +185 -185
  118. data/lib/makit/ruby.rb +25 -25
  119. data/lib/makit/secrets.rb +51 -51
  120. data/lib/makit/serializer.rb +130 -130
  121. data/lib/makit/services/builder.rb +186 -186
  122. data/lib/makit/services/error_handler.rb +226 -226
  123. data/lib/makit/services/repository_manager.rb +367 -231
  124. data/lib/makit/services/validator.rb +112 -112
  125. data/lib/makit/setup/classlib.rb +101 -101
  126. data/lib/makit/setup/gem.rb +268 -268
  127. data/lib/makit/setup/pages.rb +11 -11
  128. data/lib/makit/setup/razorclasslib.rb +101 -101
  129. data/lib/makit/setup/runner.rb +54 -54
  130. data/lib/makit/setup.rb +5 -5
  131. data/lib/makit/show.rb +110 -110
  132. data/lib/makit/storage.rb +126 -126
  133. data/lib/makit/symbols.rb +175 -170
  134. data/lib/makit/task_info.rb +130 -130
  135. data/lib/makit/tasks/at_exit.rb +15 -15
  136. data/lib/makit/tasks/build.rb +22 -22
  137. data/lib/makit/tasks/clean.rb +13 -13
  138. data/lib/makit/tasks/configure.rb +10 -10
  139. data/lib/makit/tasks/format.rb +10 -10
  140. data/lib/makit/tasks/hook_manager.rb +443 -443
  141. data/lib/makit/tasks/init.rb +49 -49
  142. data/lib/makit/tasks/integrate.rb +29 -29
  143. data/lib/makit/tasks/pull_incoming.rb +13 -13
  144. data/lib/makit/tasks/setup.rb +16 -16
  145. data/lib/makit/tasks/sync.rb +17 -17
  146. data/lib/makit/tasks/tag.rb +16 -16
  147. data/lib/makit/tasks/task_monkey_patch.rb +81 -81
  148. data/lib/makit/tasks/test.rb +22 -22
  149. data/lib/makit/tasks/update.rb +18 -18
  150. data/lib/makit/tasks.rb +20 -20
  151. data/lib/makit/test_cache.rb +239 -239
  152. data/lib/makit/tree.rb +37 -37
  153. data/lib/makit/v1/configuration/project_service_impl.rb +371 -0
  154. data/lib/makit/v1/git/git_repository_service_impl.rb +295 -0
  155. data/lib/makit/v1/makit.v1_pb.rb +35 -35
  156. data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
  157. data/lib/makit/v1/services/repository_manager_service_impl.rb +572 -0
  158. data/lib/makit/version.rb +100 -100
  159. data/lib/makit/version_util.rb +21 -21
  160. data/lib/makit/wix.rb +95 -95
  161. data/lib/makit/yaml.rb +29 -29
  162. data/lib/makit/zip.rb +17 -17
  163. data/lib/makit copy.rb +44 -44
  164. data/lib/makit.rb +111 -43
  165. metadata +61 -36
@@ -1,90 +1,266 @@
1
- # frozen_string_literal: true
2
-
3
- # This module provides classes for the Makit gem.
4
- module Makit
5
- class Git
6
- # This class provides methods for querying git repository state and metadata.
7
- class Repository
8
- def self.git_repo?
9
- Dir.exist? ".git"
10
- end
11
-
12
- def self.ci?
13
- ENV["CI"] == "true"
14
- end
15
-
16
- def self.detached
17
- `git status`.include?("detached")
18
- end
19
-
20
- def self.read_only?
21
- !git_repo? || detached
22
- end
23
-
24
- def self.clean?
25
- `git status --porcelain`.empty?
26
- end
27
-
28
- def self.unstaged_files
29
- `git status --porcelain`.split("\n")
30
- end
31
-
32
- def self.untracked_files
33
- `git ls-files --others --exclude-standard`.split("\n")
34
- end
35
-
36
- def self.get_file_infos
37
- file_infos = []
38
- file_list = `git ls-files`.split("\n")
39
- # iterate over the filelist and get the file infos
40
- file_list.each do |file|
41
- file_infos << FileInfo.new(name: file, mtime: File.mtime(file), size: File.size(file))
42
- rescue StandardError
43
- next
44
- end
45
- file_infos.sort_by!(&:mtime).reverse!
46
- file_infos
47
- end
48
-
49
- def self.get_untracked_file_infos
50
- file_infos = []
51
- file_list = `git ls-files --others --exclude-standard`.split("\n")
52
- file_list.each do |file|
53
- file_infos << FileInfo.new(name: file, mtime: File.mtime(file), size: File.size(file))
54
- rescue StandardError
55
- next
56
- end
57
- file_infos.sort_by!(&:mtime).reverse!
58
- file_infos
59
- end
60
-
61
- def self.branch
62
- `git branch --show-current`.strip
63
- end
64
-
65
- def self.commitsha
66
- `git rev-parse HEAD`.strip
67
- end
68
-
69
- def self.commitmsg
70
- `git log -1 --pretty=%B`.strip
71
- end
72
-
73
- def self.commitdate
74
- `git log -1 --pretty=%cd`.strip
75
- end
76
-
77
- def self.commitauthor
78
- `git log -1 --pretty=%an`.strip
79
- end
80
-
81
- def self.commitemail
82
- `git log -1 --pretty=%ae`.strip
83
- end
84
-
85
- def self.get_remote_url
86
- `git remote get-url origin`.strip
87
- end
88
- end
89
- end
90
- end
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
- # This module provides classes for the Makit gem.
7
- module Makit
8
- # This class provides a unified interface for git operations.
9
- # Methods have been organized into Repository (state/metadata) and CLI (commands) classes.
10
- #
11
- class Git
12
- # Delegate repository state and metadata methods to Repository class
13
- def self.git_repo?
14
- Repository.git_repo?
15
- end
16
-
17
- def self.ci?
18
- Repository.ci?
19
- end
20
-
21
- def self.detached
22
- Repository.detached
23
- end
24
-
25
- def self.read_only?
26
- Repository.read_only?
27
- end
28
-
29
- def self.clean?
30
- Repository.clean?
31
- end
32
-
33
- def self.unstaged_files
34
- Repository.unstaged_files
35
- end
36
-
37
- def self.untracked_files
38
- Repository.untracked_files
39
- end
40
-
41
- def self.get_file_infos
42
- Repository.get_file_infos
43
- end
44
-
45
- def self.get_untracked_file_infos
46
- Repository.get_untracked_file_infos
47
- end
48
-
49
- def self.branch
50
- Repository.branch
51
- end
52
-
53
- def self.commitsha
54
- Repository.commitsha
55
- end
56
-
57
- def self.commitmsg
58
- Repository.commitmsg
59
- end
60
-
61
- def self.commitdate
62
- Repository.commitdate
63
- end
64
-
65
- def self.commitauthor
66
- Repository.commitauthor
67
- end
68
-
69
- def self.commitemail
70
- Repository.commitemail
71
- end
72
-
73
- def self.get_remote_url
74
- Repository.get_remote_url
75
- end
76
-
77
- # Delegate command execution methods to CLI class
78
- def self.integrate
79
- CLI.integrate
80
- end
81
-
82
- def self.sync
83
- CLI.sync
84
- end
85
-
86
- def self.pull
87
- CLI.pull
88
- end
89
-
90
- def self.zip_source_files(zipfilename)
91
- CLI.zip_source_files(zipfilename)
92
- end
93
-
94
- def self.tag(version)
95
- CLI.tag(version)
96
- end
97
- end
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