summaryrefslogtreecommitdiff
path: root/lib/gitlab/project_search_results.rb
diff options
context:
space:
mode:
authorJonathan Schoeffling <jonathan.schoeffling@lmco.com>2015-06-14 18:04:20 -0400
committerMichael Chmielewski <code@mikec.123mail.org>2015-10-28 22:34:39 -0400
commit5a5069969ce8e9184e36abbb7623bf474d5869e9 (patch)
treead20f6d4f79b67a26a6237e95e37b1af42517970 /lib/gitlab/project_search_results.rb
parent8c9e1df98eb45e3305ab5badc6727580e84d36e0 (diff)
downloadgitlab-ce-5a5069969ce8e9184e36abbb7623bf474d5869e9.tar.gz
Add support for searching commit log messages
Include the log messages of recent commits in project-level search results, providing functionality similar to 'git log --grep'. Update repository model rspec tests to validate the output of Repository#commits_with_log_matching.
Diffstat (limited to 'lib/gitlab/project_search_results.rb')
-rw-r--r--lib/gitlab/project_search_results.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/gitlab/project_search_results.rb b/lib/gitlab/project_search_results.rb
index 0a2be605af9..3bf98699bcb 100644
--- a/lib/gitlab/project_search_results.rb
+++ b/lib/gitlab/project_search_results.rb
@@ -20,6 +20,8 @@ module Gitlab
Kaminari.paginate_array(blobs).page(page).per(per_page)
when 'wiki_blobs'
Kaminari.paginate_array(wiki_blobs).page(page).per(per_page)
+ when 'commits'
+ Kaminari.paginate_array(commits).page(page).per(per_page)
else
super
end
@@ -27,7 +29,7 @@ module Gitlab
def total_count
@total_count ||= issues_count + merge_requests_count + blobs_count +
- notes_count + wiki_blobs_count
+ notes_count + wiki_blobs_count + commits_count
end
def blobs_count
@@ -42,6 +44,10 @@ module Gitlab
@wiki_blobs_count ||= wiki_blobs.count
end
+ def commits_count
+ @commits_count ||= commits.count
+ end
+
private
def blobs
@@ -70,6 +76,10 @@ module Gitlab
Note.where(project_id: limit_project_ids).user.search(query).order('updated_at DESC')
end
+ def commits
+ project.repository.commits_with_log_matching(query)
+ end
+
def limit_project_ids
[project.id]
end