Merge branch 'api-promote-find-branch' into 'master'
API: Use find_branch! in all places Closes #51250 See merge request gitlab-org/gitlab-ce!21614
This commit is contained in:
commit
cee47fb31d
4 changed files with 13 additions and 11 deletions
5
changelogs/unreleased/api-promote-find-branch.yml
Normal file
5
changelogs/unreleased/api-promote-find-branch.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: 'API: Use find_branch! in all places'
|
||||||
|
merge_request: 21614
|
||||||
|
author: Robert Schilling
|
||||||
|
type: fixed
|
|
@ -9,14 +9,6 @@ module API
|
||||||
before { authorize! :download_code, user_project }
|
before { authorize! :download_code, user_project }
|
||||||
|
|
||||||
helpers do
|
helpers do
|
||||||
def find_branch!(branch_name)
|
|
||||||
begin
|
|
||||||
user_project.repository.find_branch(branch_name) || not_found!('Branch')
|
|
||||||
rescue Gitlab::Git::CommandError
|
|
||||||
render_api_error!('The branch refname is invalid', 400)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
params :filter_params do
|
params :filter_params do
|
||||||
optional :search, type: String, desc: 'Return list of branches matching the search criteria'
|
optional :search, type: String, desc: 'Return list of branches matching the search criteria'
|
||||||
optional :sort, type: String, desc: 'Return list of branches sorted by the given field'
|
optional :sort, type: String, desc: 'Return list of branches sorted by the given field'
|
||||||
|
|
|
@ -159,8 +159,7 @@ module API
|
||||||
commit = user_project.commit(params[:sha])
|
commit = user_project.commit(params[:sha])
|
||||||
not_found!('Commit') unless commit
|
not_found!('Commit') unless commit
|
||||||
|
|
||||||
branch = user_project.repository.find_branch(params[:branch])
|
find_branch!(params[:branch])
|
||||||
not_found!('Branch') unless branch
|
|
||||||
|
|
||||||
commit_params = {
|
commit_params = {
|
||||||
commit: commit,
|
commit: commit,
|
||||||
|
@ -171,7 +170,7 @@ module API
|
||||||
result = ::Commits::CherryPickService.new(user_project, current_user, commit_params).execute
|
result = ::Commits::CherryPickService.new(user_project, current_user, commit_params).execute
|
||||||
|
|
||||||
if result[:status] == :success
|
if result[:status] == :success
|
||||||
branch = user_project.repository.find_branch(params[:branch])
|
branch = find_branch!(params[:branch])
|
||||||
present user_project.repository.commit(branch.dereferenced_target), with: Entities::Commit
|
present user_project.repository.commit(branch.dereferenced_target), with: Entities::Commit
|
||||||
else
|
else
|
||||||
render_api_error!(result[:message], 400)
|
render_api_error!(result[:message], 400)
|
||||||
|
|
|
@ -156,6 +156,12 @@ module API
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_branch!(branch_name)
|
||||||
|
user_project.repository.find_branch(branch_name) || not_found!('Branch')
|
||||||
|
rescue Gitlab::Git::CommandError
|
||||||
|
render_api_error!('The branch refname is invalid', 400)
|
||||||
|
end
|
||||||
|
|
||||||
def find_project_label(id)
|
def find_project_label(id)
|
||||||
labels = available_labels_for(user_project)
|
labels = available_labels_for(user_project)
|
||||||
label = labels.find_by_id(id) || labels.find_by_title(id)
|
label = labels.find_by_id(id) || labels.find_by_title(id)
|
||||||
|
|
Loading…
Reference in a new issue