From 551145bc98e257280b615e305d531a44d7aa4131 Mon Sep 17 00:00:00 2001 From: Robert Schilling Date: Sun, 27 Jul 2014 16:40:00 +0200 Subject: Validate branch-names and references in WebUI, API Add specs for GitRefValidator --- lib/api/branches.rb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'lib/api') diff --git a/lib/api/branches.rb b/lib/api/branches.rb index b32a4aa7bc2..4db5f61dd28 100644 --- a/lib/api/branches.rb +++ b/lib/api/branches.rb @@ -80,9 +80,17 @@ module API # POST /projects/:id/repository/branches post ":id/repository/branches" do authorize_push_project - @branch = CreateBranchService.new.execute(user_project, params[:branch_name], params[:ref], current_user) - - present @branch, with: Entities::RepoObject, project: user_project + result = CreateBranchService.new.execute(user_project, + params[:branch_name], + params[:ref], + current_user) + if result[:status] == :success + present result[:branch], + with: Entities::RepoObject, + project: user_project + else + render_api_error!(result[:message], 400) + end end # Delete branch @@ -99,7 +107,7 @@ module API if result[:state] == :success true else - render_api_error!(result[:message], 405) + render_api_error!(result[:message], result[:return_code]) end end end -- cgit v1.2.1 From 392113919adc75ba1537d89a0de8d0641e24d5b8 Mon Sep 17 00:00:00 2001 From: Robert Schilling Date: Sun, 27 Jul 2014 19:56:33 +0200 Subject: Validate tag-names and references in WebUI, API --- lib/api/repositories.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'lib/api') diff --git a/lib/api/repositories.rb b/lib/api/repositories.rb index 42068bb343d..a3773d2c593 100644 --- a/lib/api/repositories.rb +++ b/lib/api/repositories.rb @@ -36,10 +36,15 @@ module API # POST /projects/:id/repository/tags post ':id/repository/tags' do authorize_push_project - @tag = CreateTagService.new.execute(user_project, params[:tag_name], - params[:ref], current_user) - - present @tag, with: Entities::RepoObject, project: user_project + result = CreateTagService.new.execute(user_project, params[:tag_name], + params[:ref], current_user) + if result[:status] == :success + present result[:tag], + with: Entities::RepoObject, + project: user_project + else + render_api_error!(result[:message], 400) + end end # Get a project repository tree -- cgit v1.2.1