summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 78c6d983a3d..0012f098ab2 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -193,6 +193,12 @@ class MergeRequest < ApplicationRecord
merge_request.merge_error = nil
end
+ before_transition any => :merged do |merge_request|
+ if ::Feature.enabled?(:reset_merge_error_on_transition, merge_request.project)
+ merge_request.merge_error = nil
+ end
+ end
+
after_transition any => :opened do |merge_request|
merge_request.run_after_commit do
UpdateHeadPipelineForMergeRequestWorker.perform_async(merge_request.id)
@@ -436,6 +442,14 @@ class MergeRequest < ApplicationRecord
)
end
+ scope :without_hidden, -> {
+ if Feature.enabled?(:hide_merge_requests_from_banned_users)
+ where_not_exists(Users::BannedUser.where('merge_requests.author_id = banned_users.user_id'))
+ else
+ all
+ end
+ }
+
def self.total_time_to_merge
join_metrics
.merge(MergeRequest::Metrics.with_valid_time_to_merge)
@@ -2001,6 +2015,10 @@ class MergeRequest < ApplicationRecord
false # overridden in EE
end
+ def hidden?
+ Feature.enabled?(:hide_merge_requests_from_banned_users) && author&.banned?
+ end
+
private
attr_accessor :skip_fetch_ref