blob: a643eb4b63dec2a6c1d6b575abc7e3949fe45430 (
plain)
1
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
|
module GitalyServer
class OperationsService < Gitaly::OperationService::Service
include Utils
def user_apply_patch(call)
stream = call.each_remote_read
first_request = stream.next
header = first_request.header
user = Gitlab::Git::User.from_gitaly(header.user)
target_branch = header.target_branch
patches = stream.lazy.map(&:patches)
branch_update = Gitlab::Git::Repository.from_gitaly_with_block(header.repository, call) do |repo|
begin
Gitlab::Git::CommitPatches.new(user, repo, target_branch, patches, header.timestamp).commit
rescue Gitlab::Git::PatchError => e
raise GRPC::FailedPrecondition.new(e.message)
end
end
Gitaly::UserApplyPatchResponse.new(branch_update: branch_update_result(branch_update))
end
private
def branch_update_result(gitlab_update_result)
return if gitlab_update_result.nil?
Gitaly::OperationBranchUpdate.new(
commit_id: gitlab_update_result.newrev,
repo_created: gitlab_update_result.repo_created,
branch_created: gitlab_update_result.branch_created
)
end
end
end
|