Class: Makit::Git::Repository
- Inherits:
-
Object
- Object
- Makit::Git::Repository
- Defined in:
- lib/makit/git/repository.rb
Overview
This class provides methods for querying git repository state and metadata. Refactored to use protobuf messages exclusively.
Class Method Summary collapse
- .branch ⇒ Object
- .ci? ⇒ Boolean
- .clean? ⇒ Boolean
- .commitauthor ⇒ Object
- .commitdate ⇒ Object
- .commitemail ⇒ Object
- .commitmsg ⇒ Object
- .commitsha ⇒ Object
-
.convert_file_infos_from_proto(proto_file_infos) ⇒ Object
Convert protobuf FileInfo objects to Ruby FileInfo objects.
- .detached ⇒ Object
- .get_file_infos ⇒ Object
- .get_remote_url ⇒ Object
-
.get_repository_state ⇒ Object
Get current repository state via gRPC service.
- .get_untracked_file_infos ⇒ Object
-
.git_repo? ⇒ Boolean
Delegate all static methods to gRPC service.
- .read_only? ⇒ Boolean
- .unstaged_files ⇒ Object
- .untracked_files ⇒ Object
Class Method Details
.branch ⇒ Object
58 59 60 |
# File 'lib/makit/git/repository.rb', line 58 def self.branch get_repository_state.branch end |
.ci? ⇒ Boolean
24 25 26 |
# File 'lib/makit/git/repository.rb', line 24 def self.ci? get_repository_state.is_ci end |
.clean? ⇒ Boolean
36 37 38 |
# File 'lib/makit/git/repository.rb', line 36 def self.clean? get_repository_state.is_clean end |
.commitauthor ⇒ Object
74 75 76 |
# File 'lib/makit/git/repository.rb', line 74 def self. get_repository_state. end |
.commitdate ⇒ Object
70 71 72 |
# File 'lib/makit/git/repository.rb', line 70 def self.commitdate get_repository_state.commit_date end |
.commitemail ⇒ Object
78 79 80 |
# File 'lib/makit/git/repository.rb', line 78 def self.commitemail get_repository_state.commit_email end |
.commitmsg ⇒ Object
66 67 68 |
# File 'lib/makit/git/repository.rb', line 66 def self.commitmsg get_repository_state. end |
.commitsha ⇒ Object
62 63 64 |
# File 'lib/makit/git/repository.rb', line 62 def self.commitsha get_repository_state.commit_sha end |
.convert_file_infos_from_proto(proto_file_infos) ⇒ Object
Convert protobuf FileInfo objects to Ruby FileInfo objects
89 90 91 92 93 94 95 96 97 |
# File 'lib/makit/git/repository.rb', line 89 def self.convert_file_infos_from_proto(proto_file_infos) proto_file_infos.map do |proto_file_info| Makit::FileInfo.new( name: proto_file_info.name, mtime: Time.at(proto_file_info.mtime.seconds, proto_file_info.mtime.nanos, :nsec), size: proto_file_info.size ) end end |
.detached ⇒ Object
28 29 30 |
# File 'lib/makit/git/repository.rb', line 28 def self.detached get_repository_state.is_detached end |
.get_file_infos ⇒ Object
48 49 50 51 |
# File 'lib/makit/git/repository.rb', line 48 def self.get_file_infos proto_file_infos = get_repository_state.tracked_file_infos convert_file_infos_from_proto(proto_file_infos) end |
.get_remote_url ⇒ Object
82 83 84 |
# File 'lib/makit/git/repository.rb', line 82 def self.get_remote_url get_repository_state.remote_url end |
.get_repository_state ⇒ Object
Get current repository state via gRPC service
13 14 15 16 17 |
# File 'lib/makit/git/repository.rb', line 13 def self.get_repository_state service = Makit::V1::Git::GitRepositoryServiceImpl.new request = Makit::V1::Git::GetRepositoryStateRequest.new service.get_repository_state(request, nil) end |
.get_untracked_file_infos ⇒ Object
53 54 55 56 |
# File 'lib/makit/git/repository.rb', line 53 def self.get_untracked_file_infos proto_file_infos = get_repository_state.untracked_file_infos convert_file_infos_from_proto(proto_file_infos) end |
.git_repo? ⇒ Boolean
Delegate all static methods to gRPC service
20 21 22 |
# File 'lib/makit/git/repository.rb', line 20 def self.git_repo? get_repository_state.is_git_repo end |
.read_only? ⇒ Boolean
32 33 34 |
# File 'lib/makit/git/repository.rb', line 32 def self.read_only? get_repository_state.is_read_only end |
.unstaged_files ⇒ Object
40 41 42 |
# File 'lib/makit/git/repository.rb', line 40 def self.unstaged_files get_repository_state.unstaged_files.to_a end |
.untracked_files ⇒ Object
44 45 46 |
# File 'lib/makit/git/repository.rb', line 44 def self.untracked_files get_repository_state.untracked_files.to_a end |