Make automerge via satellite
This commit is contained in:
parent
bc95576e2c
commit
9c03c1c545
|
@ -135,3 +135,16 @@ class @MergeRequest
|
|||
this.$('.automerge_widget').hide()
|
||||
this.$('.merge-in-progress').hide()
|
||||
this.$('.automerge_widget.already_cannot_be_merged').show()
|
||||
|
||||
mergeInProgress: ->
|
||||
$.ajax
|
||||
type: 'GET'
|
||||
url: $('.merge-request').data('url')
|
||||
success: (data) =>
|
||||
switch data.state
|
||||
when 'merged'
|
||||
location.reload()
|
||||
else
|
||||
setTimeout(merge_request.mergeInProgress, 3000)
|
||||
dataType: 'json'
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.json { render json: @merge_request }
|
||||
format.diff { render text: @merge_request.to_diff(current_user) }
|
||||
format.patch { render text: @merge_request.to_patch(current_user) }
|
||||
end
|
||||
|
@ -104,15 +105,15 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
if @merge_request.unchecked?
|
||||
@merge_request.check_if_can_be_merged
|
||||
end
|
||||
render json: {merge_status: @merge_request.merge_status_name}
|
||||
|
||||
render json: { merge_status: @merge_request.merge_status_name }
|
||||
end
|
||||
|
||||
def automerge
|
||||
return access_denied! unless allowed_to_merge?
|
||||
|
||||
if @merge_request.open? && @merge_request.can_be_merged?
|
||||
@merge_request.should_remove_source_branch = params[:should_remove_source_branch]
|
||||
@merge_request.automerge!(current_user, params[:commit_message])
|
||||
AutoMergeWorker.perform_async(@merge_request.id, current_user.id, params)
|
||||
@status = true
|
||||
else
|
||||
@status = false
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.merge-request
|
||||
.merge-request{'data-url' => project_merge_request_path(@project, @merge_request)}
|
||||
= render "projects/merge_requests/show/mr_title"
|
||||
%hr
|
||||
= render "projects/merge_requests/show/mr_box"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
-if @status
|
||||
:plain
|
||||
location.reload();
|
||||
merge_request.mergeInProgress();
|
||||
-else
|
||||
:plain
|
||||
merge_request.alreadyOrCannotBeMerged()
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
class AutoMergeWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
sidekiq_options queue: :default
|
||||
|
||||
def perform(merge_request_id, current_user_id, params)
|
||||
params = params.with_indifferent_access
|
||||
current_user = User.find(current_user_id)
|
||||
merge_request = MergeRequest.find(merge_request_id)
|
||||
merge_request.should_remove_source_branch = params[:should_remove_source_branch]
|
||||
merge_request.automerge!(current_user, params[:commit_message])
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue