From 2b9a25bd5a69c3c6a5bb24bb67838a4d354204e1 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Sat, 15 Oct 2016 00:11:19 +0300
Subject: [PATCH 1/2] Handle unmatched routing with not_found method

We need this to prevent routing error when user access URL like /123
when there is no resource located under such name

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 app/controllers/application_controller.rb | 4 ++++
 config/routes.rb                          | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index b3455e04c29..705824502eb 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -45,6 +45,10 @@ class ApplicationController < ActionController::Base
     redirect_to request.referer.present? ? :back : default, options
   end
 
+  def not_found
+    render_404
+  end
+
   protected
 
   # This filter handles both private tokens and personal access tokens
diff --git a/config/routes.rb b/config/routes.rb
index 83c3a42c19f..659ea51bc75 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -88,4 +88,6 @@ Rails.application.routes.draw do
   get ':username.keys' => 'profiles/keys#get_keys', constraints: { username: /.*/ }
 
   root to: "root#index"
+
+  get '*unmatched_route', to: 'application#not_found'
 end
-- 
GitLab


From b0622d657893b156ac0c265f397efeb28d5b0b4c Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Sat, 15 Oct 2016 01:48:14 +0300
Subject: [PATCH 2/2] Revert "Update git over http test to match new routing"

This reverts commit 68ab7047dae98172a0bd8b92956f2ee51b9167a0.
---
 spec/requests/git_http_spec.rb | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/spec/requests/git_http_spec.rb b/spec/requests/git_http_spec.rb
index 5a1ed7d4a25..27f0fd22ae6 100644
--- a/spec/requests/git_http_spec.rb
+++ b/spec/requests/git_http_spec.rb
@@ -412,9 +412,10 @@ describe 'Git HTTP requests', lib: true do
 
         context "when the params are anything else" do
           let(:params) { { service: 'git-implode-pack' } }
+          before { get path, params }
 
-          it "fails to find a route" do
-            expect { get(path, params) }.to raise_error(ActionController::RoutingError)
+          it "redirects to the sign-in page" do
+            expect(response).to redirect_to(new_user_session_path)
           end
         end
       end
-- 
GitLab