Class: Makit::V1::Services::RepositoryManagerServiceImpl

Inherits:
RepositoryManagerService::Service
  • Object
show all
Defined in:
lib/makit/v1/services/repository_manager_service_impl.rb

Overview

Implementation of the RepositoryManagerService gRPC service

Instance Method Summary collapse

Instance Method Details

#clone_or_pull_repository(request, _unused_call) ⇒ Object

Clone repository if it doesn’t exist, otherwise pull latest changes



33
34
35
36
37
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 33

def clone_or_pull_repository(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = clone_or_pull_repository_impl(model, request.git_repository)
  convert_to_proto_model(result_model)
end

#clone_repository(request, _unused_call) ⇒ Object

Clone a git repository to a local directory



19
20
21
22
23
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 19

def clone_repository(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = clone_repository_impl(model, request.git_repository)
  convert_to_proto_model(result_model)
end

#create_repository_model(request, _unused_call) ⇒ Object

Create a new repository manager model with default values



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 68

def create_repository_model(request, _unused_call)
  model = create_repository_model_impl(
    repository_url: request.repository_url,
    clone_directory: request.clone_directory,
    work_directory: request.work_directory,
    is_initialized: request.is_initialized,
    is_cloned: request.is_cloned,
    has_work_directory: request.has_work_directory,
    latest_commit_hash: request.latest_commit_hash,
    last_pull_time: convert_timestamp_from_proto(request.last_pull_time),
    last_clone_time: convert_timestamp_from_proto(request.last_clone_time),
    git_log_entries: convert_git_log_entries_from_proto(request.git_log_entries),
    command_results: convert_command_results_from_proto(request.command_results),
    validation_errors: request.validation_errors.to_a,
    configuration: request.configuration.to_h
  )
  convert_to_proto_model(model)
end

#get_latest_commit(request, _unused_call) ⇒ Object

Get the latest commit hash from a repository



54
55
56
57
58
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 54

def get_latest_commit(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = get_latest_commit_impl(model, request.clone_dir)
  convert_to_proto_model(result_model)
end

#get_repository_log(request, _unused_call) ⇒ Object

Get git log information for a repository



40
41
42
43
44
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 40

def get_repository_log(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = get_repository_log_impl(model, request.git_repository, request.limit, request.skip)
  convert_to_proto_model(result_model)
end

#initialize_repository(request, _unused_call) ⇒ Object

Initialize a new git repository in the specified directory



12
13
14
15
16
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 12

def initialize_repository(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = initialize_repository_impl(model, request.directory)
  convert_to_proto_model(result_model)
end

#pull_repository(request, _unused_call) ⇒ Object

Pull the latest changes from the remote repository



26
27
28
29
30
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 26

def pull_repository(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = pull_repository_impl(model, request.git_repository)
  convert_to_proto_model(result_model)
end

#setup_work_directory(request, _unused_call) ⇒ Object

Set up a work directory for a repository



47
48
49
50
51
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 47

def setup_work_directory(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = setup_work_directory_impl(model, request.repository)
  convert_to_proto_model(result_model)
end

#update_repository_model(request, _unused_call) ⇒ Object

Update an existing repository model



88
89
90
91
92
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 88

def update_repository_model(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = update_repository_model_impl(model, request.updates.to_h)
  convert_to_proto_model(result_model)
end

#validate_clone_directory(request, _unused_call) ⇒ Object

Validate that a clone directory exists for the given repository



61
62
63
64
65
# File 'lib/makit/v1/services/repository_manager_service_impl.rb', line 61

def validate_clone_directory(request, _unused_call)
  model = convert_from_proto_model(request.model)
  result_model = validate_clone_directory_impl(model, request.url)
  convert_to_proto_model(result_model)
end