Link for auto merge, db field for MR
This commit is contained in:
parent
78d620b3b6
commit
cd74f9da91
5 changed files with 61 additions and 25 deletions
|
@ -96,18 +96,23 @@ class MergeRequestsController < ApplicationController
|
|||
end
|
||||
|
||||
def automerge
|
||||
render_404 unless @merge_request.open?
|
||||
|
||||
message = ""
|
||||
|
||||
if GitlabMerge.new(@merge_request).merge
|
||||
@merge_request.update_attributes(
|
||||
:author_id_of_changes => current_user.id,
|
||||
:closed => true
|
||||
)
|
||||
@merge_request.reload_code
|
||||
@merge_request.merge!(current_user.id)
|
||||
message = "Successfully merged"
|
||||
else
|
||||
@merge_request.mark_as_unmergable
|
||||
message = "Can not be merged"
|
||||
end
|
||||
|
||||
redirect_to [@merge_request.project, @merge_request], :alert => message
|
||||
rescue => ex
|
||||
@merge_request.mark_as_unmergable
|
||||
message = "Can not be merged"
|
||||
ensure
|
||||
redirect_to [@merge_request.project, @merge_request], :alert => message
|
||||
end
|
||||
|
||||
|
|
|
@ -56,6 +56,10 @@ class MergeRequest < ActiveRecord::Base
|
|||
self.reloaded_diffs
|
||||
end
|
||||
|
||||
def can_be_merged?
|
||||
auto_merge
|
||||
end
|
||||
|
||||
def new?
|
||||
today? && created_at == updated_at
|
||||
end
|
||||
|
@ -118,6 +122,11 @@ class MergeRequest < ActiveRecord::Base
|
|||
save
|
||||
end
|
||||
|
||||
def mark_as_unmergable
|
||||
self.auto_merge = false
|
||||
save
|
||||
end
|
||||
|
||||
def reloaded_commits
|
||||
if open? && unmerged_commits.any?
|
||||
self.st_commits = unmerged_commits
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
%span.right
|
||||
- if can?(current_user, :modify_merge_request, @merge_request)
|
||||
- if @merge_request.open?
|
||||
= link_to "Show how to merge", "#", :class => "how_to_merge_link btn small padded", :title => "How To Merge"
|
||||
= link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "btn small padded", :title => "Close merge request"
|
||||
= link_to edit_project_merge_request_path(@project, @merge_request), :class => "btn small padded" do
|
||||
Edit
|
||||
|
@ -53,6 +52,22 @@
|
|||
Closed by #{@merge_request.closed_event.author_name}
|
||||
%small #{time_ago_in_words(@merge_request.closed_event.created_at)} ago.
|
||||
|
||||
- if @merge_request.open? && @commits.any?
|
||||
- if @merge_request.can_be_merged?
|
||||
.alert-message.block-message.success
|
||||
%p You can try to merge this request with GitLab. If failed you can always do it manually
|
||||
.alert-actions
|
||||
= link_to "Try Merge it!", automerge_project_merge_request_path(@project, @merge_request), :class => "btn small success"
|
||||
|
||||
= link_to "Show how to merge", "#", :class => "how_to_merge_link btn small padded", :title => "How To Merge"
|
||||
- else
|
||||
.alert-message.block-message
|
||||
%p This request cant be merged with GitLab. You should do it manually
|
||||
.alert-actions
|
||||
%span.btn.small.disabled Try Merge it!
|
||||
= link_to "Show how to merge", "#", :class => "how_to_merge_link btn small padded success", :title => "How To Merge"
|
||||
|
||||
|
||||
= render "merge_requests/commits"
|
||||
|
||||
- unless @commits.empty?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue