Skip to content
Snippets Groups Projects
Verified Commit d575ee3e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Improve branch deletion via API

parent 8ae2d215
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -199,3 +199,17 @@ Parameters:
"protected": false
}
```
## Delete repository branch
```
DELETE /projects/:id/repository/branches/:branch
```
Parameters:
+ `id` (required) - The ID of a project
+ `branch` (required) - The name of the branch
It return 200 if succeed or 405 if failed with error message explaining reason.
Loading
Loading
@@ -94,7 +94,13 @@ module API
# DELETE /projects/:id/repository/branches/:branch
delete ":id/repository/branches/:branch" do
authorize_push_project
DeleteBranchService.new.execute(user_project, params[:branch], current_user)
result = DeleteBranchService.new.execute(user_project, params[:branch], current_user)
if result[:state] == :success
true
else
render_api_error!(result[:message], 405)
end
end
end
end
Loading
Loading
Loading
Loading
@@ -91,7 +91,6 @@ describe API::API, api: true do
end
end
 
describe "POST /projects/:id/repository/branches" do
it "should create a new branch" do
post api("/projects/#{project.id}/repository/branches", user),
Loading
Loading
@@ -112,4 +111,26 @@ describe API::API, api: true do
response.status.should == 403
end
end
describe "DELETE /projects/:id/repository/branches/:branch" do
before { Repository.any_instance.stub(rm_branch: true) }
it "should remove branch" do
delete api("/projects/#{project.id}/repository/branches/new_design", user)
response.status.should == 200
end
it "should remove protected branch" do
project.protected_branches.create(name: 'new_design')
delete api("/projects/#{project.id}/repository/branches/new_design", user)
response.status.should == 405
json_response['message'].should == 'Protected branch cant be removed'
end
it "should not remove HEAD branch" do
delete api("/projects/#{project.id}/repository/branches/master", user)
response.status.should == 405
json_response['message'].should == 'Cannot remove HEAD branch'
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment