summaryrefslogtreecommitdiff
path: root/lib/api/commit_statuses.rb
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-04-11 16:55:40 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-04-11 23:32:55 +0200
commitaf7214d0f077f738ed57194feb0cd468c43d4310 (patch)
tree36c2d2abd7252af8a4610f22affa92f8f2b2e1e5 /lib/api/commit_statuses.rb
parent5d69f5b46d475f34fb71dfb4e8b683e90897f1da (diff)
downloadgitlab-ce-af7214d0f077f738ed57194feb0cd468c43d4310.tar.gz
Fix specs
Diffstat (limited to 'lib/api/commit_statuses.rb')
-rw-r--r--lib/api/commit_statuses.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/api/commit_statuses.rb b/lib/api/commit_statuses.rb
index e7d76764ff5..0b52dd8a743 100644
--- a/lib/api/commit_statuses.rb
+++ b/lib/api/commit_statuses.rb
@@ -21,10 +21,9 @@ module API
authorize!(:read_commit_status, user_project)
not_found!('Commit') unless user_project.commit(params[:sha])
- ci_commit = user_project.ci_commit(params[:sha], params[:ref])
- return [] unless ci_commit
- statuses = ci_commit.statuses
+ ci_commits = user_project.ci_commits.where(sha: params[:sha])
+ statuses = ::CommitStatus.where(commit: ci_commits)
statuses = statuses.latest unless parse_boolean(params[:all])
statuses = statuses.where(ref: params[:ref]) if params[:ref].present?
statuses = statuses.where(stage: params[:stage]) if params[:stage].present?
@@ -51,7 +50,14 @@ module API
commit = @project.commit(params[:sha])
not_found! 'Commit' unless commit
- ci_commit = @project.ensure_ci_commit(commit.sha)
+ ref = params[:ref] ||
+ begin
+ branches = @project.repository.branch_names_contains(commit.sha)
+ not_found! 'Reference for commit' if branches.none?
+ branches.first
+ end
+
+ ci_commit = @project.ensure_ci_commit(commit.sha, ref)
name = params[:name] || params[:context]
status = GenericCommitStatus.running_or_pending.find_by(commit: ci_commit, name: name, ref: params[:ref])