Commit 54ab9bb6df3a2cd9f9384aebae07e0b18acee10b

Authored by Sebastian Ziebell
1 parent fd01f3aa

API: return status code 400 if filepath of raw file blob not given

lib/api/projects.rb
... ... @@ -451,6 +451,8 @@ module Gitlab
451 451 get ":id/repository/commits/:sha/blob" do
452 452 authorize! :download_code, user_project
453 453  
  454 + error!("Filepath must be specified", 400) if !params.has_key? :filepath
  455 +
454 456 ref = params[:sha]
455 457  
456 458 commit = user_project.repository.commit ref
... ...
spec/requests/api/projects_spec.rb
... ... @@ -468,7 +468,7 @@ describe Gitlab::API do
468 468 end
469 469 end
470 470  
471   - describe "GET /projects/:id/:sha/blob" do
  471 + describe "GET /projects/:id/repository/commits/:sha/blob" do
472 472 it "should get the raw file contents" do
473 473 get api("/projects/#{project.id}/repository/commits/master/blob?filepath=README.md", user)
474 474 response.status.should == 200
... ... @@ -483,5 +483,10 @@ describe Gitlab::API do
483 483 get api("/projects/#{project.id}/repository/commits/master/blob?filepath=README.invalid", user)
484 484 response.status.should == 404
485 485 end
  486 +
  487 + it "should return a 400 error if filepath is missing" do
  488 + get api("/projects/#{project.id}/repository/commits/master/blob", user)
  489 + response.status.should == 400
  490 + end
486 491 end
487 492 end
... ...