Fix protected branches routing
Summary
On the master branch, if you attempt to access the protected branches in the project settings with an empty repo, you get NoMethodError - undefined method "project_url"
.
Steps to reproduce
- Check out GitLab master and run.
- Create a new project.
- Go to Settings.
- Click on "Protected branches"
Expected behavior
The controller is supposed to redirect back to the projects page since there are no branches.
Observed behavior
Internal Error 500
Relevant logs
NoMethodError - undefined method `project_url' for #<Projects::ProtectedBranchesController:0x007fd920054af0>:
app/controllers/application_controller.rb:157:in `method_missing'
actionpack (4.1.9) lib/action_dispatch/routing/polymorphic_routes.rb:142:in `polymorphic_url'
actionpack (4.1.9) lib/action_dispatch/routing/url_for.rb:161:in `url_for'
actionpack (4.1.9) lib/action_controller/metal/redirecting.rb:91:in `_compute_redirect_to_location'
turbolinks (2.0.0) lib/turbolinks.rb:15:in `_compute_redirect_to_location_with_xhr_referer'
actionpack (4.1.9) lib/action_controller/metal/redirecting.rb:71:in `redirect_to
Fix
I added a unit test for the empty project case and replicated the issue. I added the URL router helpers that appear to be necessary after 42387b73.