diff options
Diffstat (limited to 'app/services/projects/unlink_fork_service.rb')
-rw-r--r-- | app/services/projects/unlink_fork_service.rb | 13 |
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| |