diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-02-19 20:55:17 +0100 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-02-19 23:24:31 +0100 |
commit | 6febe1007ef6fec4507d81a5579c2766cd188a17 (patch) | |
tree | d8eeebdeb4fadfae3ba1d31ff515c3e52954c3eb /app/services | |
parent | 56449cc6747224adbf3a55e9ac5d21e24dbbaa30 (diff) | |
download | gitlab-ce-6febe1007ef6fec4507d81a5579c2766cd188a17.tar.gz |
Discover branches for commit statuses ref-less when doing merge when succeededmerge-when-succeeded
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/merge_requests/merge_when_build_succeeds_service.rb | 15 |
1 files changed, 10 insertions, 5 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 5cf7404a493..531bbc9b067 100644 --- a/app/services/merge_requests/merge_when_build_succeeds_service.rb +++ b/app/services/merge_requests/merge_when_build_succeeds_service.rb @@ -19,8 +19,8 @@ module MergeRequests end # Triggers the automatic merge of merge_request once the build succeeds - def trigger(build) - merge_requests = merge_request_from(build) + def trigger(commit_status) + merge_requests = merge_request_from(commit_status) merge_requests.each do |merge_request| next unless merge_request.merge_when_build_succeeds? @@ -45,9 +45,14 @@ module MergeRequests private - def merge_request_from(build) - merge_requests = @project.origin_merge_requests.opened.where(source_branch: build.ref).to_a - merge_requests += @project.fork_merge_requests.opened.where(source_branch: build.ref).to_a + def merge_request_from(commit_status) + branches = commit_status.ref + + # This is for ref-less builds + branches ||= @project.repository.branch_names_contains(commit_status.sha) + + 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 merge_requests.uniq.select(&:source_project) end |