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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-23 21:11:07 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-23 21:11:07 +0300
commitc5da163db1c10676b1a01a898b7b3a4506e65b89 (patch)
tree0110bf1518c8049cddab8d62e77d4f7dad2478a7 /app/services/merge_requests
parent750a63ac4cc7acbecff3b8d22232cb1c15af34fb (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/merge_requests')
-rw-r--r--app/services/merge_requests/mergeability/check_base_service.rb5
-rw-r--r--app/services/merge_requests/mergeability/check_ci_status_service.rb2
-rw-r--r--app/services/merge_requests/mergeability/check_discussions_status_service.rb2
-rw-r--r--app/services/merge_requests/mergeability/check_rebase_status_service.rb2
-rw-r--r--app/services/merge_requests/mergeability/detailed_merge_status_service.rb6
-rw-r--r--app/services/merge_requests/mergeability/run_checks_service.rb2
6 files changed, 15 insertions, 4 deletions
diff --git a/app/services/merge_requests/mergeability/check_base_service.rb b/app/services/merge_requests/mergeability/check_base_service.rb
index e1c4d751296..b8a275b6c32 100644
--- a/app/services/merge_requests/mergeability/check_base_service.rb
+++ b/app/services/merge_requests/mergeability/check_base_service.rb
@@ -42,6 +42,11 @@ module MergeRequests
.failed(payload: default_payload(args))
end
+ def inactive(**args)
+ Gitlab::MergeRequests::Mergeability::CheckResult
+ .inactive(payload: default_payload(args))
+ end
+
def default_payload(args)
args.merge(identifier: self.class.identifier)
end
diff --git a/app/services/merge_requests/mergeability/check_ci_status_service.rb b/app/services/merge_requests/mergeability/check_ci_status_service.rb
index f7fa3259d97..b4e60e964b7 100644
--- a/app/services/merge_requests/mergeability/check_ci_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_ci_status_service.rb
@@ -7,6 +7,8 @@ module MergeRequests
end
def execute
+ return inactive unless merge_request.only_allow_merge_if_pipeline_succeeds?
+
if merge_request.mergeable_ci_state?
success
else
diff --git a/app/services/merge_requests/mergeability/check_discussions_status_service.rb b/app/services/merge_requests/mergeability/check_discussions_status_service.rb
index 34db5f8a944..f9cff5d1e5f 100644
--- a/app/services/merge_requests/mergeability/check_discussions_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_discussions_status_service.rb
@@ -7,6 +7,8 @@ module MergeRequests
end
def execute
+ return inactive unless merge_request.only_allow_merge_if_all_discussions_are_resolved?
+
if merge_request.mergeable_discussions_state?
success
else
diff --git a/app/services/merge_requests/mergeability/check_rebase_status_service.rb b/app/services/merge_requests/mergeability/check_rebase_status_service.rb
index 2163fec8bd6..02cd0587be0 100644
--- a/app/services/merge_requests/mergeability/check_rebase_status_service.rb
+++ b/app/services/merge_requests/mergeability/check_rebase_status_service.rb
@@ -8,6 +8,8 @@ module MergeRequests
end
def execute
+ return inactive unless merge_request.project.ff_merge_must_be_possible?
+
if merge_request.should_be_rebased?
failure(reason: failure_reason)
else
diff --git a/app/services/merge_requests/mergeability/detailed_merge_status_service.rb b/app/services/merge_requests/mergeability/detailed_merge_status_service.rb
index 86c8122604c..92f0fb0429c 100644
--- a/app/services/merge_requests/mergeability/detailed_merge_status_service.rb
+++ b/app/services/merge_requests/mergeability/detailed_merge_status_service.rb
@@ -18,10 +18,10 @@ module MergeRequests
# If everything else is mergeable, but CI is not, the frontend expects two potential states to be returned
# See discussion: gitlab.com/gitlab-org/gitlab/-/merge_requests/96778#note_1093063523
- if check_ci_results.success?
- :mergeable
- else
+ if check_ci_results.failed?
ci_check_failure_reason
+ else
+ :mergeable
end
else
check_results.payload[:failure_reason]
diff --git a/app/services/merge_requests/mergeability/run_checks_service.rb b/app/services/merge_requests/mergeability/run_checks_service.rb
index 5150c03d0a3..92f3e5e951a 100644
--- a/app/services/merge_requests/mergeability/run_checks_service.rb
+++ b/app/services/merge_requests/mergeability/run_checks_service.rb
@@ -65,7 +65,7 @@ module MergeRequests
end
def all_results_success?
- results.all?(&:success?)
+ results.none?(&:failed?)
end
def failure_reason