summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/merge_request_tabs.js.coffee8
-rw-r--r--app/assets/stylesheets/framework/common.scss1
-rw-r--r--app/assets/stylesheets/framework/header.scss1
-rw-r--r--app/assets/stylesheets/pages/issuable.scss51
-rw-r--r--app/helpers/diff_helper.rb2
-rw-r--r--app/helpers/nav_helper.rb1
-rw-r--r--app/services/merge_requests/merge_when_build_succeeds_service.rb12
-rw-r--r--app/views/layouts/_head.html.haml1
-rw-r--r--spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb16
9 files changed, 60 insertions, 33 deletions
diff --git a/app/assets/javascripts/merge_request_tabs.js.coffee b/app/assets/javascripts/merge_request_tabs.js.coffee
index b10e1db7f3f..6f569f9e1aa 100644
--- a/app/assets/javascripts/merge_request_tabs.js.coffee
+++ b/app/assets/javascripts/merge_request_tabs.js.coffee
@@ -146,6 +146,7 @@ class @MergeRequestTabs
success: (data) =>
document.querySelector("div#diffs").innerHTML = data.html
$('div#diffs .js-syntax-highlight').syntaxHighlight()
+ @expandViewContainer() if @diffViewType() is 'parallel'
@diffsLoaded = true
@scrollToElement("#diffs")
@@ -177,3 +178,10 @@ class @MergeRequestTabs
options = $.extend({}, defaults, options)
$.ajax(options)
+
+ # Returns diff view type
+ diffViewType: ->
+ $('.inline-parallel-buttons a.active').data('view-type')
+
+ expandViewContainer: ->
+ $('.container-fluid').removeClass('container-limited')
diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss
index ea56d9e12a0..0ddbf612543 100644
--- a/app/assets/stylesheets/framework/common.scss
+++ b/app/assets/stylesheets/framework/common.scss
@@ -377,7 +377,6 @@ table {
}
.project-item-select-holder {
- display: inline-block;
position: relative;
.project-item-select {
diff --git a/app/assets/stylesheets/framework/header.scss b/app/assets/stylesheets/framework/header.scss
index a81e258573d..531dedb89fe 100644
--- a/app/assets/stylesheets/framework/header.scss
+++ b/app/assets/stylesheets/framework/header.scss
@@ -77,6 +77,7 @@ header {
line-height: $header-height;
font-weight: normal;
color: #4c4e54;
+ overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
white-space: nowrap;
diff --git a/app/assets/stylesheets/pages/issuable.scss b/app/assets/stylesheets/pages/issuable.scss
index ef62f069dc2..374c66ef5af 100644
--- a/app/assets/stylesheets/pages/issuable.scss
+++ b/app/assets/stylesheets/pages/issuable.scss
@@ -64,7 +64,6 @@
// This prevents the mess when resizing the sidebar
// of elements repositioning themselves..
width: $gutter_inner_width;
- overflow-x: hidden;
// --
&:first-child {
@@ -90,7 +89,6 @@
.gutter-toggle {
margin-left: 20px;
- border-left: 1px solid $border-gray-light;
padding-left: 10px;
&:hover {
@@ -157,11 +155,10 @@
.right-sidebar {
position: fixed;
top: 58px;
+ bottom: 0;
right: 0;
- height: 100%;
- transition-duration: .3s;
+ transition: width .3s;
background: $gray-light;
- overflow: scroll;
padding: 10px 20px;
&.right-sidebar-expanded {
@@ -170,6 +167,14 @@
hr {
display: none;
}
+
+ .sidebar-collapsed-icon {
+ display: none;
+ }
+
+ .gutter-toggle {
+ border-left: 1px solid $border-gray-light;
+ }
}
.subscribe-button {
@@ -181,7 +186,6 @@
&.right-sidebar-collapsed {
width: $sidebar_collapsed_width;
padding-top: 0;
- overflow-x: hidden;
hr {
margin: 0;
@@ -192,21 +196,13 @@
}
.block {
- border-bottom: none;
+ width: $sidebar_collapsed_width - 1px;
+ margin-left: -19px;
padding: 15px 0 0 0;
+ border-bottom: none;
+ overflow: hidden;
}
- }
-
- .btn {
- background: $gray-normal;
- border: 1px solid $border-gray-normal;
- &:hover {
- background: $gray-dark;
- border: 1px solid $border-gray-dark;
- }
- }
- &.right-sidebar-collapsed {
.issuable-count,
.issuable-nav,
.assignee > *,
@@ -219,15 +215,13 @@
}
.gutter-toggle {
- margin-left: -$gutter_inner_width + 4;
+ margin-left: -36px;
}
.sidebar-collapsed-icon {
display: block;
- float: left;
- width: 62px;
+ width: 100%;
text-align: center;
- margin-left: -19px;
padding-bottom: 10px;
color: #999999;
@@ -247,14 +241,15 @@
color: #999999;
}
}
-
}
-
}
- &.right-sidebar-expanded {
- .sidebar-collapsed-icon {
- display: none;
+ .btn {
+ background: $gray-normal;
+ border: 1px solid $border-gray-normal;
+ &:hover {
+ background: $gray-dark;
+ border: 1px solid $border-gray-dark;
}
}
}
@@ -263,4 +258,4 @@
small {
color: $gray-darkest;
}
-} \ No newline at end of file
+}
diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb
index 6a3ab3ea40a..d76db867c5a 100644
--- a/app/helpers/diff_helper.rb
+++ b/app/helpers/diff_helper.rb
@@ -137,7 +137,7 @@ module DiffHelper
# Always use HTML to handle case where JSON diff rendered this button
params_copy.delete(:format)
- link_to url_for(params_copy), id: "#{name}-diff-btn", class: (selected ? 'btn active' : 'btn') do
+ link_to url_for(params_copy), id: "#{name}-diff-btn", class: (selected ? 'btn active' : 'btn'), data: { view_type: name } do
title
end
end
diff --git a/app/helpers/nav_helper.rb b/app/helpers/nav_helper.rb
index 29cb753e62c..5d86bd490a8 100644
--- a/app/helpers/nav_helper.rb
+++ b/app/helpers/nav_helper.rb
@@ -23,6 +23,7 @@ module NavHelper
if current_path?('merge_requests#show') ||
current_path?('merge_requests#diffs') ||
current_path?('merge_requests#commits') ||
+ current_path?('merge_requests#builds') ||
current_path?('issues#show')
if cookies[:collapsed_gutter] == 'true'
"page-gutter right-sidebar-collapsed"
diff --git a/app/services/merge_requests/merge_when_build_succeeds_service.rb b/app/services/merge_requests/merge_when_build_succeeds_service.rb
index 531bbc9b067..d6af12f9739 100644
--- a/app/services/merge_requests/merge_when_build_succeeds_service.rb
+++ b/app/services/merge_requests/merge_when_build_succeeds_service.rb
@@ -24,10 +24,14 @@ module MergeRequests
merge_requests.each do |merge_request|
next unless merge_request.merge_when_build_succeeds?
+ next unless merge_request.mergeable?
- if merge_request.ci_commit && merge_request.ci_commit.success? && merge_request.mergeable?
- MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params)
- end
+ ci_commit = merge_request.ci_commit
+ next unless ci_commit
+ next unless ci_commit.sha == commit_status.sha
+ next unless ci_commit.success?
+
+ MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params)
end
end
@@ -51,6 +55,8 @@ module MergeRequests
# This is for ref-less builds
branches ||= @project.repository.branch_names_contains(commit_status.sha)
+ return [] if branches.blank?
+
merge_requests = @project.origin_merge_requests.opened.where(source_branch: branches).to_a
merge_requests += @project.fork_merge_requests.opened.where(source_branch: branches).to_a
diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml
index 38ca4f91c4d..79cdbac1f37 100644
--- a/app/views/layouts/_head.html.haml
+++ b/app/views/layouts/_head.html.haml
@@ -44,6 +44,7 @@
= favicon_link_tag 'touch-icon-ipad.png', rel: 'apple-touch-icon', sizes: '76x76'
= favicon_link_tag 'touch-icon-iphone-retina.png', rel: 'apple-touch-icon', sizes: '120x120'
= favicon_link_tag 'touch-icon-ipad-retina.png', rel: 'apple-touch-icon', sizes: '152x152'
+ %link{rel: 'mask-icon', href: image_path('logo.svg'), color: 'rgb(226, 67, 41)'}
-# Windows 8 pinned site tile
%meta{name: 'msapplication-TileImage', content: image_path('msapplication-tile.png')}
diff --git a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb b/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb
index f285517cdac..52a302e0e1a 100644
--- a/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb
+++ b/spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb
@@ -66,9 +66,25 @@ describe MergeRequests::MergeWhenBuildSucceedsService do
end
end
+ context 'triggered by an old build' do
+ let(:old_build) { create(:ci_build, ref: mr_merge_if_green_enabled.source_branch, status: "success") }
+ let(:build) { create(:ci_build, ref: mr_merge_if_green_enabled.source_branch, status: "success") }
+
+ it "merges all merge requests with merge when build succeeds enabled" do
+ allow_any_instance_of(MergeRequest).to receive(:ci_commit).and_return(ci_commit)
+ allow(ci_commit).to receive(:success?).and_return(true)
+ allow(old_build).to receive(:sha).and_return('1234abcdef')
+
+ expect(MergeWorker).to_not receive(:perform_async)
+ service.trigger(old_build)
+ end
+ end
+
context 'commit status without ref' do
let(:commit_status) { create(:generic_commit_status, status: 'success') }
+ before { mr_merge_if_green_enabled }
+
it "doesn't merge a requests for status on other branch" do
allow(project.repository).to receive(:branch_names_contains).with(commit_status.sha).and_return([])