summaryrefslogtreecommitdiff
path: root/lib/ci
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-01-04 18:24:39 +0100
committerRémy Coutable <remy@rymai.me>2017-01-09 10:02:52 +0100
commitc28b0a539dcbbec8ba487067ff315cb5d57e5bdb (patch)
treed1db4aba7fc14ff9766b2fb384b3c718d099fb4f /lib/ci
parent8ab94120ee0a87c7b1158ebafea101e3952ec758 (diff)
downloadgitlab-ce-c28b0a539dcbbec8ba487067ff315cb5d57e5bdb.tar.gz
Don't instrument 405 Grape calls26051-fix-missing-endpoint-route-method
Fixes #26051. Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'lib/ci')
-rw-r--r--lib/ci/api/api.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/ci/api/api.rb b/lib/ci/api/api.rb
index a6b9beecded..24bb3649a76 100644
--- a/lib/ci/api/api.rb
+++ b/lib/ci/api/api.rb
@@ -8,6 +8,16 @@ module Ci
rack_response({ 'message' => '404 Not found' }.to_json, 404)
end
+ # Retain 405 error rather than a 500 error for Grape 0.15.0+.
+ # https://github.com/ruby-grape/grape/blob/a3a28f5b5dfbb2797442e006dbffd750b27f2a76/UPGRADING.md#changes-to-method-not-allowed-routes
+ rescue_from Grape::Exceptions::MethodNotAllowed do |e|
+ error! e.message, e.status, e.headers
+ end
+
+ rescue_from Grape::Exceptions::Base do |e|
+ error! e.message, e.status, e.headers
+ end
+
rescue_from :all do |exception|
handle_api_exception(exception)
end