summaryrefslogtreecommitdiff
path: root/app/services/projects/unlink_fork_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/projects/unlink_fork_service.rb')
-rw-r--r--app/services/projects/unlink_fork_service.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/services/projects/unlink_fork_service.rb b/app/services/projects/unlink_fork_service.rb
index 52aea8c51a5..6ba3356d612 100644
--- a/app/services/projects/unlink_fork_service.rb
+++ b/app/services/projects/unlink_fork_service.rb
@@ -9,6 +9,8 @@ module Projects
return unless fork_network
+ log_info(message: "UnlinkForkService: Unlinking fork network", fork_network_id: fork_network.id)
+
merge_requests = fork_network
.merge_requests
.opened
@@ -16,6 +18,7 @@ module Projects
merge_requests.find_each do |mr|
::MergeRequests::CloseService.new(@project, @current_user).execute(mr)
+ log_info(message: "UnlinkForkService: Closed merge request", merge_request_id: mr.id)
end
Project.transaction do
@@ -31,6 +34,16 @@ module Projects
end
end
+ # rubocop: disable Cop/InBatches
+ Project.uncached do
+ @project.forked_to_members.in_batches do |fork_relation|
+ fork_relation.pluck(:id).each do |fork_id| # rubocop: disable CodeReuse/ActiveRecord
+ log_info(message: "UnlinkForkService: Unlinked fork of root_project", project_id: @project.id, forked_project_id: fork_id)
+ end
+ end
+ end
+ # rubocop: enable Cop/InBatches
+
# When the project getting out of the network is a node with parent
# and children, both the parent and the node needs a cache refresh.
[forked_from, @project].compact.each do |project|