diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-02-22 10:33:34 +0100 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-02-22 10:34:09 +0100 |
commit | 7c288c07f12bad7047cc2c7c0d4eee8c1c8f2733 (patch) | |
tree | 514a6f831bfb1b060785c965397685affc497eab /app | |
parent | 04d1b412587028260ac219a32bdf3b03ac022308 (diff) | |
download | gitlab-ce-7c288c07f12bad7047cc2c7c0d4eee8c1c8f2733.tar.gz |
Check the HEAD of branch when doing Merge When Succeededimprove-merge-when-succeeded
Diffstat (limited to 'app')
-rw-r--r-- | app/services/merge_requests/merge_when_build_succeeds_service.rb | 12 |
1 files changed, 9 insertions, 3 deletions
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 |