diff options
-rw-r--r-- | app/assets/javascripts/merge_request_tabs.js.coffee | 8 | ||||
-rw-r--r-- | app/assets/stylesheets/framework/common.scss | 1 | ||||
-rw-r--r-- | app/assets/stylesheets/framework/header.scss | 1 | ||||
-rw-r--r-- | app/assets/stylesheets/pages/issuable.scss | 51 | ||||
-rw-r--r-- | app/helpers/diff_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/nav_helper.rb | 1 | ||||
-rw-r--r-- | app/services/merge_requests/merge_when_build_succeeds_service.rb | 12 | ||||
-rw-r--r-- | app/views/layouts/_head.html.haml | 1 | ||||
-rw-r--r-- | spec/services/merge_requests/merge_when_build_succeeds_service_spec.rb | 16 |
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([]) |