diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
commit | 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch) | |
tree | 4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /app/services/merge_requests | |
parent | 744144d28e3e7fddc117924fef88de5d9674fe4c (diff) |
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'app/services/merge_requests')
-rw-r--r-- | app/services/merge_requests/merge_to_ref_service.rb | 8 | ||||
-rw-r--r-- | app/services/merge_requests/mergeability_check_service.rb | 4 | ||||
-rw-r--r-- | app/services/merge_requests/squash_service.rb | 17 |
3 files changed, 7 insertions, 22 deletions
diff --git a/app/services/merge_requests/merge_to_ref_service.rb b/app/services/merge_requests/merge_to_ref_service.rb index eda652c4b9a..8519cbac3cb 100644 --- a/app/services/merge_requests/merge_to_ref_service.rb +++ b/app/services/merge_requests/merge_to_ref_service.rb @@ -13,12 +13,12 @@ module MergeRequests class MergeToRefService < MergeRequests::MergeBaseService extend ::Gitlab::Utils::Override - def execute(merge_request) + def execute(merge_request, cache_merge_to_ref_calls = false) @merge_request = merge_request error_check! - commit_id = commit + commit_id = commit(cache_merge_to_ref_calls) raise_error('Conflicts detected during merge') unless commit_id @@ -65,8 +65,8 @@ module MergeRequests params[:allow_conflicts] || false end - def commit - if Feature.enabled?(:cache_merge_to_ref_calls, project, default_enabled: false) + def commit(cache_merge_to_ref_calls = false) + if cache_merge_to_ref_calls Rails.cache.fetch(cache_key, expires_in: 1.day) do extracted_merge_to_ref end diff --git a/app/services/merge_requests/mergeability_check_service.rb b/app/services/merge_requests/mergeability_check_service.rb index 3e294aeaa07..c3498c5ce97 100644 --- a/app/services/merge_requests/mergeability_check_service.rb +++ b/app/services/merge_requests/mergeability_check_service.rb @@ -157,7 +157,9 @@ module MergeRequests def merge_to_ref params = { allow_conflicts: Feature.enabled?(:display_merge_conflicts_in_diff, project) } - result = MergeRequests::MergeToRefService.new(project: project, current_user: merge_request.author, params: params).execute(merge_request) + result = MergeRequests::MergeToRefService + .new(project: project, current_user: merge_request.author, params: params) + .execute(merge_request, true) result[:status] == :success end diff --git a/app/services/merge_requests/squash_service.rb b/app/services/merge_requests/squash_service.rb index 31c49b3ae70..102f78c6a9b 100644 --- a/app/services/merge_requests/squash_service.rb +++ b/app/services/merge_requests/squash_service.rb @@ -2,8 +2,6 @@ module MergeRequests class SquashService < MergeRequests::BaseService - SquashInProgressError = Class.new(RuntimeError) - def execute # If performing a squash would result in no change, then # immediately return a success message without performing a squash @@ -13,14 +11,7 @@ module MergeRequests return error(s_('MergeRequests|This project does not allow squashing commits when merge requests are accepted.')) if squash_forbidden? - if squash_in_progress? - return error(s_('MergeRequests|Squash task canceled: another squash is already in progress.')) - end - squash! || error(s_('MergeRequests|Failed to squash. Should be done manually.')) - - rescue SquashInProgressError - error(s_('MergeRequests|An error occurred while checking whether another squash is in progress.')) end private @@ -35,14 +26,6 @@ module MergeRequests false end - def squash_in_progress? - merge_request.squash_in_progress? - rescue StandardError => e - log_error(exception: e, message: 'Failed to check squash in progress') - - raise SquashInProgressError, e.message - end - def squash_forbidden? target_project.squash_never? end |