summaryrefslogtreecommitdiff
path: root/app/services/merge_requests/auto_merge_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/merge_requests/auto_merge_service.rb')
-rw-r--r--app/services/merge_requests/auto_merge_service.rb75
1 files changed, 0 insertions, 75 deletions
diff --git a/app/services/merge_requests/auto_merge_service.rb b/app/services/merge_requests/auto_merge_service.rb
deleted file mode 100644
index db824d452d0..00000000000
--- a/app/services/merge_requests/auto_merge_service.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-module MergeRequests
- # AutoMergeService class
- #
- # Do git merge in satellite and in case of success
- # mark merge request as merged and execute all hooks and notifications
- # Called when you do merge via GitLab UI
- class AutoMergeService < BaseMergeService
- attr_reader :merge_request, :commit_message
-
- def execute(merge_request, commit_message)
- @commit_message = commit_message
- @merge_request = merge_request
-
- merge_request.lock_mr
-
- if merge!
- merge_request.merge
- create_merge_event(merge_request, current_user)
- create_note(merge_request)
- notification_service.merge_mr(merge_request, current_user)
- execute_hooks(merge_request, 'merge')
- true
- else
- merge_request.unlock_mr
- false
- end
- rescue
- merge_request.unlock_mr if merge_request.locked?
- merge_request.mark_as_unmergeable
- false
- end
-
- def merge!
- if merge_request.for_fork?
- Gitlab::Satellite::MergeAction.new(current_user, merge_request).merge!(commit_message)
- else
- # Merge local branches using rugged instead of satellites
- if sha = commit
- after_commit(sha, merge_request.target_branch)
-
- if merge_request.remove_source_branch?
- DeleteBranchService.new(merge_request.source_project, current_user).execute(merge_request.source_branch)
- end
-
- true
- else
- false
- end
- end
- end
-
- def commit
- committer = repository.user_to_comitter(current_user)
-
- options = {
- message: commit_message,
- author: committer,
- committer: committer
- }
-
- repository.merge(merge_request.source_branch, merge_request.target_branch, options)
- end
-
- def after_commit(sha, branch)
- commit = repository.commit(sha)
- full_ref = "#{Gitlab::Git::BRANCH_REF_PREFIX}#{branch}"
- old_sha = commit.parent_id || Gitlab::Git::BLANK_SHA
- GitPushService.new.execute(project, current_user, old_sha, sha, full_ref)
- end
-
- def repository
- project.repository
- end
- end
-end