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.rb33
1 files changed, 21 insertions, 12 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 043f07cf9f3..64b8223a1f0 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -261,6 +261,19 @@ class MergeRequest < ApplicationRecord
scope :by_merge_commit_sha, -> (sha) do
where(merge_commit_sha: sha)
end
+ scope :by_squash_commit_sha, -> (sha) do
+ where(squash_commit_sha: sha)
+ end
+ scope :by_related_commit_sha, -> (sha) do
+ from_union(
+ [
+ by_commit_sha(sha),
+ by_squash_commit_sha(sha),
+ by_merge_commit_sha(sha)
+ ],
+ remove_duplicates: false
+ )
+ end
scope :by_cherry_pick_sha, -> (sha) do
joins(:notes).where(notes: { commit_id: sha })
end
@@ -493,6 +506,10 @@ class MergeRequest < ApplicationRecord
work_in_progress?(title) ? title : "Draft: #{title}"
end
+ def self.participant_includes
+ [:reviewers, :award_emoji] + super
+ end
+
def committers
@committers ||= commits.committers
end
@@ -1639,18 +1656,6 @@ class MergeRequest < ApplicationRecord
!has_commits?
end
- def mergeable_with_quick_action?(current_user, autocomplete_precheck: false, last_diff_sha: nil)
- return false unless can_be_merged_by?(current_user)
-
- return true if autocomplete_precheck
-
- return false unless mergeable?(skip_ci_check: true)
- return false if actual_head_pipeline && !(actual_head_pipeline.success? || actual_head_pipeline.active?)
- return false if last_diff_sha != diff_head_sha
-
- true
- end
-
def pipeline_coverage_delta
if base_pipeline&.coverage && head_pipeline&.coverage
'%.2f' % (head_pipeline.coverage.to_f - base_pipeline.coverage.to_f)
@@ -1762,6 +1767,10 @@ class MergeRequest < ApplicationRecord
false
end
+ def supports_assignee?
+ true
+ end
+
private
def with_rebase_lock