Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/projects/transfer_service.rb')
-rw-r--r--app/services/projects/transfer_service.rb38
1 files changed, 36 insertions, 2 deletions
diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb
index 4a9d96d266c..642ec37619f 100644
--- a/app/services/projects/transfer_service.rb
+++ b/app/services/projects/transfer_service.rb
@@ -13,6 +13,14 @@ module Projects
include Gitlab::ShellAdapter
TransferError = Class.new(StandardError)
+ def log_project_transfer_success(project, new_namespace)
+ log_transfer(project, new_namespace, nil)
+ end
+
+ def log_project_transfer_error(project, new_namespace, error_message)
+ log_transfer(project, new_namespace, error_message)
+ end
+
def execute(new_namespace)
@new_namespace = new_namespace
@@ -36,10 +44,15 @@ module Projects
transfer(project)
+ log_project_transfer_success(project, @new_namespace)
+
true
rescue Projects::TransferService::TransferError => ex
project.reset
project.errors.add(:new_namespace, ex.message)
+
+ log_project_transfer_error(project, @new_namespace, ex.message)
+
false
end
@@ -47,6 +60,27 @@ module Projects
attr_reader :old_path, :new_path, :new_namespace, :old_namespace
+ def log_transfer(project, new_namespace, error_message = nil)
+ action = error_message.nil? ? "was" : "was not"
+
+ log_payload = {
+ message: "Project #{action} transferred to a new namespace",
+ project_id: project.id,
+ project_path: project.full_path,
+ project_namespace: project.namespace.full_path,
+ namespace_id: project.namespace_id,
+ new_namespace_id: new_namespace&.id,
+ new_project_namespace: new_namespace&.full_path,
+ error_message: error_message
+ }
+
+ if error_message.nil?
+ ::Gitlab::AppLogger.info(log_payload)
+ else
+ ::Gitlab::AppLogger.error(log_payload)
+ end
+ end
+
# rubocop: disable CodeReuse/ActiveRecord
def transfer(project)
@old_path = project.full_path
@@ -110,7 +144,7 @@ module Projects
update_pending_builds
- post_update_hooks(project)
+ post_update_hooks(project, @old_group)
rescue Exception # rubocop:disable Lint/RescueException
rollback_side_effects
raise
@@ -119,7 +153,7 @@ module Projects
end
# Overridden in EE
- def post_update_hooks(project)
+ def post_update_hooks(project, _old_group)
ensure_personal_project_owner_membership(project)
invalidate_personal_projects_counts