From 3d8fbd12b8f234aa62f4b5ceed21076a7afbcd23 Mon Sep 17 00:00:00 2001 From: "micael.bergeron" Date: Mon, 20 Nov 2017 09:02:01 -0500 Subject: add support for commit (in mr) to reference filter --- app/models/merge_request.rb | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 949d42f865c..d60b9fb6b2d 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1021,4 +1021,13 @@ class MergeRequest < ActiveRecord::Base project.merge_requests.merged.where(author_id: author_id).empty? end + + def banzai_render_context(field) + # this will be used to reference these commit in the context of the MR + # the URL are built differently + { + merge_request: self, + mr_commit_shas: all_commit_shas + } + end end -- cgit v1.2.1 From 716f9cbb415cd425644b1aeae19844b26cc7d6b7 Mon Sep 17 00:00:00 2001 From: "micael.bergeron" Date: Tue, 21 Nov 2017 13:06:38 -0500 Subject: tidying up the changes --- app/models/merge_request.rb | 9 --------- 1 file changed, 9 deletions(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index d60b9fb6b2d..949d42f865c 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1021,13 +1021,4 @@ class MergeRequest < ActiveRecord::Base project.merge_requests.merged.where(author_id: author_id).empty? end - - def banzai_render_context(field) - # this will be used to reference these commit in the context of the MR - # the URL are built differently - { - merge_request: self, - mr_commit_shas: all_commit_shas - } - end end -- cgit v1.2.1 From cb6f51ec9b2006f1040cca94119135c92e9a4cd1 Mon Sep 17 00:00:00 2001 From: "micael.bergeron" Date: Wed, 22 Nov 2017 09:48:09 -0500 Subject: add support for the commit reference filter --- app/models/merge_request.rb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 949d42f865c..22a79da9879 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -649,6 +649,7 @@ class MergeRequest < ActiveRecord::Base .to_sql Note.from("(#{union}) #{Note.table_name}") + .includes(:noteable) end alias_method :discussion_notes, :related_notes @@ -920,16 +921,13 @@ class MergeRequest < ActiveRecord::Base def all_pipelines return Ci::Pipeline.none unless source_project + commit_shas = all_commits.unscope(:limit).select(:sha) @all_pipelines ||= source_project.pipelines - .where(sha: all_commit_shas, ref: source_branch) + .where(sha: commit_shas, ref: source_branch) .order(id: :desc) end - # Note that this could also return SHA from now dangling commits - # - def all_commit_shas - return commit_shas unless persisted? - + def all_commits diffs_relation = merge_request_diffs # MySQL doesn't support LIMIT in a subquery. @@ -938,8 +936,15 @@ class MergeRequest < ActiveRecord::Base MergeRequestDiffCommit .where(merge_request_diff: diffs_relation) .limit(10_000) - .pluck('sha') - .uniq + end + + # Note that this could also return SHA from now dangling commits + # + def all_commit_shas + @all_commit_shas ||= begin + return commit_shas unless persisted? + all_commits.pluck(:sha).uniq + end end def merge_commit -- cgit v1.2.1 From 16c8b91092fa0fe0b5822648c22ee545e11cb4bc Mon Sep 17 00:00:00 2001 From: "micael.bergeron" Date: Wed, 6 Dec 2017 08:32:12 -0500 Subject: revert the `#all_pipelines` method to use the pluck the `ci_pipelines.sha` column is not the same type than the `merge_request_diff_commits.sha` column (varchar, bytea) --- app/models/merge_request.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 22a79da9879..2dad036639a 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -921,9 +921,8 @@ class MergeRequest < ActiveRecord::Base def all_pipelines return Ci::Pipeline.none unless source_project - commit_shas = all_commits.unscope(:limit).select(:sha) @all_pipelines ||= source_project.pipelines - .where(sha: commit_shas, ref: source_branch) + .where(sha: all_commit_shas, ref: source_branch) .order(id: :desc) end -- cgit v1.2.1 From 360b94ceba146935a40b02f39ed3d833eaea134a Mon Sep 17 00:00:00 2001 From: "micael.bergeron" Date: Fri, 1 Dec 2017 14:08:30 -0500 Subject: adding view and feature specs --- app/models/merge_request.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 2dad036639a..422f138c4ea 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -927,10 +927,12 @@ class MergeRequest < ActiveRecord::Base end def all_commits - diffs_relation = merge_request_diffs - # MySQL doesn't support LIMIT in a subquery. - diffs_relation = diffs_relation.recent if Gitlab::Database.postgresql? + diffs_relation = if Gitlab::Database.postgresql? + merge_request_diffs.recent + else + merge_request_diffs + end MergeRequestDiffCommit .where(merge_request_diff: diffs_relation) @@ -942,6 +944,7 @@ class MergeRequest < ActiveRecord::Base def all_commit_shas @all_commit_shas ||= begin return commit_shas unless persisted? + all_commits.pluck(:sha).uniq end end -- cgit v1.2.1