summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-02-19 20:55:17 +0100
committerKamil Trzcinski <ayufan@ayufan.eu>2016-02-19 23:24:31 +0100
commit6febe1007ef6fec4507d81a5579c2766cd188a17 (patch)
treed8eeebdeb4fadfae3ba1d31ff515c3e52954c3eb /app/services
parent56449cc6747224adbf3a55e9ac5d21e24dbbaa30 (diff)
downloadgitlab-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.rb15
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