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/merge_requests/post_merge_service.rb')
-rw-r--r--app/services/merge_requests/post_merge_service.rb23
1 files changed, 6 insertions, 17 deletions
diff --git a/app/services/merge_requests/post_merge_service.rb b/app/services/merge_requests/post_merge_service.rb
index a3d7f623546..0364c0dd479 100644
--- a/app/services/merge_requests/post_merge_service.rb
+++ b/app/services/merge_requests/post_merge_service.rb
@@ -8,28 +8,17 @@ module MergeRequests
#
class PostMergeService < MergeRequests::BaseService
def execute(merge_request)
- # These operations need to happen transactionally
- ActiveRecord::Base.transaction(requires_new: true) do
- merge_request.mark_as_merged
-
- # These options do not call external services and should be
- # relatively quick enough to put in a Transaction
- create_event(merge_request)
- todo_service.merge_merge_request(merge_request, current_user)
- end
-
- # These operations are idempotent so can be safely run multiple times
- notification_service.merge_mr(merge_request, current_user)
- create_note(merge_request)
+ merge_request.mark_as_merged
close_issues(merge_request)
+ todo_service.merge_merge_request(merge_request, current_user)
+ create_event(merge_request)
+ create_note(merge_request)
+ notification_service.merge_mr(merge_request, current_user)
+ execute_hooks(merge_request, 'merge')
invalidate_cache_counts(merge_request, users: merge_request.assignees)
merge_request.update_project_counter_caches
delete_non_latest_diffs(merge_request)
cleanup_environments(merge_request)
-
- # Anything after this point will be executed at-most-once. Less important activity only
- # TODO: make all the work in here a separate sidekiq job so it can go in the transaction
- execute_hooks(merge_request, 'merge')
end
private