Refactor search by commits message
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
a0d0a01791
commit
810c91fe35
7 changed files with 11 additions and 41 deletions
|
@ -14,6 +14,7 @@ v 8.2.0 (unreleased)
|
||||||
- Fix: 500 error returned if destroy request without HTTP referer (Kazuki Shimizu)
|
- Fix: 500 error returned if destroy request without HTTP referer (Kazuki Shimizu)
|
||||||
- Remove deprecated CI events from project settings page
|
- Remove deprecated CI events from project settings page
|
||||||
- Use issue editor as cross reference comment author when issue is edited with a new mention.
|
- Use issue editor as cross reference comment author when issue is edited with a new mention.
|
||||||
|
- Include commit logs in project search
|
||||||
|
|
||||||
v 8.1.1
|
v 8.1.1
|
||||||
- Fix cloning Wiki repositories via HTTP (Stan Hu)
|
- Fix cloning Wiki repositories via HTTP (Stan Hu)
|
||||||
|
@ -29,9 +30,6 @@ v 8.1.0
|
||||||
- Ensure MySQL CI limits DB migrations occur after the fields have been created (Stan Hu)
|
- Ensure MySQL CI limits DB migrations occur after the fields have been created (Stan Hu)
|
||||||
- Fix duplicate repositories in GitHub import page (Stan Hu)
|
- Fix duplicate repositories in GitHub import page (Stan Hu)
|
||||||
- Redirect to a default path if HTTP_REFERER is not set (Stan Hu)
|
- Redirect to a default path if HTTP_REFERER is not set (Stan Hu)
|
||||||
- Include commit logs in project search
|
|
||||||
|
|
||||||
v 8.1.0 (unreleased)
|
|
||||||
- Send an email to admin email when a user is reported for spam (Jonathan Rochkind)
|
- Send an email to admin email when a user is reported for spam (Jonathan Rochkind)
|
||||||
- Show notifications button when user is member of group rather than project (Grzegorz Bizon)
|
- Show notifications button when user is member of group rather than project (Grzegorz Bizon)
|
||||||
- Fix bug preventing mentioned issued from being closed when MR is merged using fast-forward merge.
|
- Fix bug preventing mentioned issued from being closed when MR is merged using fast-forward merge.
|
||||||
|
|
|
@ -33,6 +33,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
li.commit {
|
li.commit {
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
.commit-row-title {
|
.commit-row-title {
|
||||||
font-size: $list-font-size;
|
font-size: $list-font-size;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
|
|
|
@ -87,12 +87,12 @@ class Repository
|
||||||
commits
|
commits
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_commits_with_matching_log(query)
|
def find_commits_by_message(query)
|
||||||
# Limited to 1000 commits for now, could be parameterized?
|
# Limited to 1000 commits for now, could be parameterized?
|
||||||
args = %W(git log --pretty=%H --max-count 1000 --grep=#{query})
|
args = %W(git log --pretty=%H --max-count 1000 --grep=#{query})
|
||||||
|
|
||||||
git_log_results = Gitlab::Popen.popen(args, path_to_repo).first.lines.map{ |l| l.chomp }
|
git_log_results = Gitlab::Popen.popen(args, path_to_repo).first.lines.map(&:chomp)
|
||||||
commits = git_log_results.map{ |c| commit(c) }
|
commits = git_log_results.map { |c| commit(c) }
|
||||||
commits
|
commits
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
= link_to search_filter_path(scope: 'commits') do
|
= link_to search_filter_path(scope: 'commits') do
|
||||||
= icon('history fw')
|
= icon('history fw')
|
||||||
%span
|
%span
|
||||||
Commit Logs
|
Commits
|
||||||
%span.badge
|
%span.badge
|
||||||
= @search_results.commits_count
|
= @search_results.commits_count
|
||||||
|
|
||||||
|
|
|
@ -1,32 +1,2 @@
|
||||||
.search-result-row
|
.search-result-row
|
||||||
.commits-row-title
|
= render 'projects/commits/commit', project: @project, commit: commits
|
||||||
%strong.str-truncated
|
|
||||||
= link_to commits.title, namespace_project_commit_path(@project.namespace, @project, commits.id), class: "commit_short_id"
|
|
||||||
|
|
||||||
.pull-right
|
|
||||||
= link_to commits.short_id, namespace_project_commit_path(@project.namespace, @project, commits.id), class: "commit_short_id"
|
|
||||||
|
|
||||||
.notes_count
|
|
||||||
- if @note_counts
|
|
||||||
- note_count = @note_counts.fetch(commits.id, 0)
|
|
||||||
- else
|
|
||||||
- notes = commits.notes
|
|
||||||
- note_count = notes.user.count
|
|
||||||
|
|
||||||
- if note_count > 0
|
|
||||||
%span.light
|
|
||||||
%i.fa.fa-comments
|
|
||||||
= note_count
|
|
||||||
|
|
||||||
- if commits.description?
|
|
||||||
.commits-row-description
|
|
||||||
%pre
|
|
||||||
= preserve(gfm(escape_once(commits.description)))
|
|
||||||
|
|
||||||
.commits-row-info
|
|
||||||
= commit_author_link(commits, avatar: true, size: 24)
|
|
||||||
authored
|
|
||||||
.committed_ago
|
|
||||||
#{time_ago_with_tooltip(commits.committed_date)}
|
|
||||||
= link_to_browse_code(@project, commits)
|
|
||||||
%br
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def commits
|
def commits
|
||||||
project.repository.find_commits_with_matching_log(query)
|
project.repository.find_commits_by_message(query)
|
||||||
end
|
end
|
||||||
|
|
||||||
def limit_project_ids
|
def limit_project_ids
|
||||||
|
|
|
@ -26,8 +26,8 @@ describe Repository do
|
||||||
it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') }
|
it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe :find_commits_with_matching_log do
|
describe :find_commits_by_message do
|
||||||
subject { repository.find_commits_with_matching_log('submodule').map{ |k| k.id } }
|
subject { repository.find_commits_by_message('submodule').map{ |k| k.id } }
|
||||||
|
|
||||||
it { is_expected.to include('5937ac0a7beb003549fc5fd26fc247adbce4a52e') }
|
it { is_expected.to include('5937ac0a7beb003549fc5fd26fc247adbce4a52e') }
|
||||||
it { is_expected.to include('6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9') }
|
it { is_expected.to include('6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9') }
|
||||||
|
|
Loading…
Reference in a new issue