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/refresh_service.rb')
-rw-r--r--app/services/merge_requests/refresh_service.rb94
1 files changed, 0 insertions, 94 deletions
diff --git a/app/services/merge_requests/refresh_service.rb b/app/services/merge_requests/refresh_service.rb
deleted file mode 100644
index e9b526d1fb7..00000000000
--- a/app/services/merge_requests/refresh_service.rb
+++ /dev/null
@@ -1,94 +0,0 @@
-module MergeRequests
- class RefreshService < MergeRequests::BaseService
- def execute(oldrev, newrev, ref)
- return true unless Gitlab::Git.branch_ref?(ref)
-
- @oldrev, @newrev = oldrev, newrev
- @branch_name = Gitlab::Git.ref_name(ref)
- @fork_merge_requests = @project.fork_merge_requests.opened
- @commits = @project.repository.commits_between(oldrev, newrev)
-
- close_merge_requests
- reload_merge_requests
- comment_mr_with_commits
-
- true
- end
-
- private
-
- # Collect open merge requests that target same branch we push into
- # and close if push to master include last commit from merge request
- # We need this to close(as merged) merge requests that were merged into
- # target branch manually
- def close_merge_requests
- commit_ids = @commits.map(&:id)
- merge_requests = @project.merge_requests.opened.where(target_branch: @branch_name).to_a
- merge_requests = merge_requests.select(&:last_commit)
-
- merge_requests = merge_requests.select do |merge_request|
- commit_ids.include?(merge_request.last_commit.id)
- end
-
-
- merge_requests.uniq.select(&:source_project).each do |merge_request|
- MergeRequests::MergeService.
- new(merge_request.target_project, @current_user).
- execute(merge_request, nil)
- end
- end
-
- def force_push?
- Gitlab::ForcePushCheck.force_push?(@project, @oldrev, @newrev)
- end
-
- # Refresh merge request diff if we push to source or target branch of merge request
- # Note: we should update merge requests from forks too
- def reload_merge_requests
- merge_requests = @project.merge_requests.opened.by_branch(@branch_name).to_a
- merge_requests += @fork_merge_requests.by_branch(@branch_name).to_a
- merge_requests = filter_merge_requests(merge_requests)
-
- merge_requests.each do |merge_request|
-
- if merge_request.source_branch == @branch_name || force_push?
- merge_request.reload_code
- merge_request.mark_as_unchecked
- else
- mr_commit_ids = merge_request.commits.map(&:id)
- push_commit_ids = @commits.map(&:id)
- matches = mr_commit_ids & push_commit_ids
-
- if matches.any?
- merge_request.reload_code
- merge_request.mark_as_unchecked
- else
- merge_request.mark_as_unchecked
- end
- end
- end
- end
-
- # Add comment about pushing new commits to merge requests
- def comment_mr_with_commits
- merge_requests = @project.origin_merge_requests.opened.where(source_branch: @branch_name).to_a
- merge_requests += @fork_merge_requests.where(source_branch: @branch_name).to_a
- merge_requests = filter_merge_requests(merge_requests)
-
- merge_requests.each do |merge_request|
- mr_commit_ids = Set.new(merge_request.commits.map(&:id))
-
- new_commits, existing_commits = @commits.partition do |commit|
- mr_commit_ids.include?(commit.id)
- end
-
- Note.create_new_commits_note(merge_request, merge_request.project,
- @current_user, new_commits, existing_commits, @oldrev)
- end
- end
-
- def filter_merge_requests(merge_requests)
- merge_requests.uniq.select(&:source_project)
- end
- end
-end