Commit f66ec1bc authored by Stan Hu's avatar Stan Hu

Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce

parents ef85b31f b6f8d010
...@@ -11,6 +11,7 @@ v 8.2.0 (unreleased) ...@@ -11,6 +11,7 @@ v 8.2.0 (unreleased)
- Show "Empty Repository Page" for repository without branches (Artem V. Navrotskiy) - Show "Empty Repository Page" for repository without branches (Artem V. Navrotskiy)
- Fix: Inability to reply to code comments in the MR view, if the MR comes from a fork - Fix: Inability to reply to code comments in the MR view, if the MR comes from a fork
- Use git follow flag for commits page when retrieve history for file or directory - Use git follow flag for commits page when retrieve history for file or directory
- Show merge request CI status on merge requests index page
v 8.1.0 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)
......
...@@ -42,4 +42,13 @@ module CiStatusHelper ...@@ -42,4 +42,13 @@ module CiStatusHelper
icon(icon_name) icon(icon_name)
end end
def render_ci_status(ci_commit)
link_to ci_status_path(ci_commit),
class: "c#{ci_status_color(ci_commit)}",
title: "Build status: #{ci_commit.status}",
data: { toggle: 'tooltip', placement: 'left' } do
ci_status_icon(ci_commit)
end
end
end end
...@@ -159,11 +159,11 @@ class MergeRequest < ActiveRecord::Base ...@@ -159,11 +159,11 @@ class MergeRequest < ActiveRecord::Base
def last_commit def last_commit
merge_request_diff ? merge_request_diff.last_commit : compare_commits.last merge_request_diff ? merge_request_diff.last_commit : compare_commits.last
end end
def first_commit def first_commit
merge_request_diff ? merge_request_diff.first_commit : compare_commits.first merge_request_diff ? merge_request_diff.first_commit : compare_commits.first
end end
def last_commit_short_sha def last_commit_short_sha
last_commit.short_id last_commit.short_id
...@@ -470,4 +470,10 @@ class MergeRequest < ActiveRecord::Base ...@@ -470,4 +470,10 @@ class MergeRequest < ActiveRecord::Base
unlock_mr if locked? unlock_mr if locked?
end end
end end
def ci_commit
if last_commit
source_project.ci_commit(last_commit.id)
end
end
end end
...@@ -496,7 +496,7 @@ class Repository ...@@ -496,7 +496,7 @@ class Repository
def search_files(query, ref) def search_files(query, ref)
offset = 2 offset = 2
args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} #{query} #{ref || root_ref}) args = %W(git grep -i -n --before-context #{offset} --after-context #{offset} -e #{query} #{ref || root_ref})
Gitlab::Popen.popen(args, path_to_repo).first.scrub.split(/^--$/) Gitlab::Popen.popen(args, path_to_repo).first.scrub.split(/^--$/)
end end
......
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
.pull-right .pull-right
- if ci_commit - if ci_commit
= link_to ci_status_path(ci_commit), class: "c#{ci_status_color(ci_commit)}" do = render_ci_status(ci_commit)
= ci_status_icon(ci_commit)
&nbsp; &nbsp;
= clipboard_button = clipboard_button
= link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id", data: {clipboard_text: commit.id} = link_to commit.short_id, namespace_project_commit_path(project.namespace, project, commit), class: "commit_short_id", data: {clipboard_text: commit.id}
......
- ci_commit = merge_request.ci_commit
%li{ class: mr_css_classes(merge_request) } %li{ class: mr_css_classes(merge_request) }
.merge-request-title .merge-request-title
%span.merge-request-title-text %span.merge-request-title-text
...@@ -6,6 +7,8 @@ ...@@ -6,6 +7,8 @@
- merge_request.labels.each do |label| - merge_request.labels.each do |label|
= link_to_label(label, project: merge_request.project) = link_to_label(label, project: merge_request.project)
.pull-right.light .pull-right.light
- if ci_commit
= render_ci_status(ci_commit)
- if merge_request.merged? - if merge_request.merged?
%span %span
%i.fa.fa-check %i.fa.fa-check
......
- ci_commit = @merge_request.source_project.ci_commit(@merge_request.source_sha) - ci_commit = @merge_request.ci_commit
- if ci_commit - if ci_commit
- status = ci_commit.status - status = ci_commit.status
.mr-widget-heading .mr-widget-heading
......
...@@ -21,9 +21,7 @@ ...@@ -21,9 +21,7 @@
.project-controls .project-controls
- if ci && !project.empty_repo? && project.commit - if ci && !project.empty_repo? && project.commit
- if ci_commit = project.ci_commit(project.commit.sha) - if ci_commit = project.ci_commit(project.commit.sha)
= link_to ci_status_path(ci_commit), class: "c#{ci_status_color(ci_commit)}", = render_ci_status(ci_commit)
title: "Build status: #{ci_commit.status}", data: {toggle: 'tooltip', placement: 'left'} do
= ci_status_icon(ci_commit)
&nbsp; &nbsp;
- if stars - if stars
%span %span
......
...@@ -10,6 +10,12 @@ Feature: Project Merge Requests ...@@ -10,6 +10,12 @@ Feature: Project Merge Requests
Then I should see "Bug NS-04" in merge requests Then I should see "Bug NS-04" in merge requests
And I should not see "Feature NS-03" in merge requests And I should not see "Feature NS-03" in merge requests
Scenario: I should see CI status for merge requests
Given project "Shop" have "Bug NS-05" open merge request with diffs inside
Given "Bug NS-05" has CI status
When I visit project "Shop" merge requests page
Then I should see merge request "Bug NS-05" with CI status
Scenario: I should see rejected merge requests Scenario: I should see rejected merge requests
Given I click link "Closed" Given I click link "Closed"
Then I should see "Feature NS-03" in merge requests Then I should see "Feature NS-03" in merge requests
......
...@@ -338,6 +338,19 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps ...@@ -338,6 +338,19 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
expect(page).to have_content('diff --git') expect(page).to have_content('diff --git')
end end
step '"Bug NS-05" has CI status' do
project = merge_request.source_project
project.enable_ci
ci_commit = create :ci_commit, gl_project: project, sha: merge_request.last_commit.id
create :ci_build, commit: ci_commit
end
step 'I should see merge request "Bug NS-05" with CI status' do
page.within ".mr-list" do
expect(page).to have_link "Build status: pending"
end
end
def merge_request def merge_request
@merge_request ||= MergeRequest.find_by!(title: "Bug NS-05") @merge_request ||= MergeRequest.find_by!(title: "Bug NS-05")
end end
......
...@@ -9,7 +9,7 @@ module Gitlab ...@@ -9,7 +9,7 @@ module Gitlab
else else
nil nil
end end
@query = Shellwords.shellescape(query) if query.present? @query = query
end end
def objects(scope, page = nil) def objects(scope, page = nil)
......
...@@ -9,7 +9,7 @@ describe Gitlab::ProjectSearchResults do ...@@ -9,7 +9,7 @@ describe Gitlab::ProjectSearchResults do
it { expect(results.project).to eq(project) } it { expect(results.project).to eq(project) }
it { expect(results.repository_ref).to be_nil } it { expect(results.repository_ref).to be_nil }
it { expect(results.query).to eq('hello\\ world') } it { expect(results.query).to eq('hello world') }
end end
describe 'initialize with ref' do describe 'initialize with ref' do
...@@ -18,6 +18,6 @@ describe Gitlab::ProjectSearchResults do ...@@ -18,6 +18,6 @@ describe Gitlab::ProjectSearchResults do
it { expect(results.project).to eq(project) } it { expect(results.project).to eq(project) }
it { expect(results.repository_ref).to eq(ref) } it { expect(results.repository_ref).to eq(ref) }
it { expect(results.query).to eq('hello\\ world') } it { expect(results.query).to eq('hello world') }
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment