summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-03-01 16:50:23 +0000
committerDouwe Maan <douwe@gitlab.com>2016-03-01 16:50:23 +0000
commit9b3c1a8c4f53d97ef46e82706dc159756b354ad3 (patch)
treee935245d7132d15c33d47725fe8ce26b960d986d /lib
parent6b0e37b05fae14530b10b9357ebaef87920222e3 (diff)
parent278f4423d1bbec596d3556582439e09b2376367b (diff)
downloadgitlab-ce-9b3c1a8c4f53d97ef46e82706dc159756b354ad3.tar.gz
Merge branch 'fix/commit-status-api-improvement' into 'master'
Return empty array when commit has no statuses in API This makes API endpoint for Commit Statuses return empty array instead of 404 when commit exists, but has no statuses. Closes #3080 See merge request !3010
Diffstat (limited to 'lib')
-rw-r--r--lib/api/commit_statuses.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/api/commit_statuses.rb b/lib/api/commit_statuses.rb
index 9422d438d21..8e74e177ea0 100644
--- a/lib/api/commit_statuses.rb
+++ b/lib/api/commit_statuses.rb
@@ -18,10 +18,12 @@ module API
# Examples:
# GET /projects/:id/repository/commits/:sha/statuses
get ':id/repository/commits/:sha/statuses' do
- authorize! :read_commit_status, user_project
- sha = params[:sha]
- ci_commit = user_project.ci_commit(sha)
- not_found! 'Commit' unless ci_commit
+ authorize!(:read_commit_status, user_project)
+
+ not_found!('Commit') unless user_project.commit(params[:sha])
+ ci_commit = user_project.ci_commit(params[:sha])
+ return [] unless ci_commit
+
statuses = ci_commit.statuses
statuses = statuses.latest unless parse_boolean(params[:all])
statuses = statuses.where(ref: params[:ref]) if params[:ref].present?