summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblackst0ne <blackst0ne.ru@gmail.com>2018-06-16 21:46:31 +1100
committerblackst0ne <blackst0ne.ru@gmail.com>2018-06-16 21:46:31 +1100
commitc48e7dc2633f8ee8f38150b050938f43e75bd207 (patch)
treee8fab96b29cfd93f46e0d575436329478e8c7cce
parentf733d4f8979a7570a9347186dbe0f8c663c2ff4f (diff)
downloadgitlab-ce-c48e7dc2633f8ee8f38150b050938f43e75bd207.tar.gz
[Rails5] Set request.format for artifacts_controllerblackst0ne-rails5-expected-the-response-to-have-status-code-ok-but-it-was-404
Since Rails 5 request.format gets set by extension if it's not explicitly set. That means artifacts_controller#file no longer works as expected. This commit explicitly sets request.format for artifacts_controller#file.
-rw-r--r--app/controllers/projects/artifacts_controller.rb9
-rw-r--r--changelogs/unreleased/blackst0ne-rails5-expected-the-response-to-have-status-code-ok-but-it-was-404.yml5
2 files changed, 14 insertions, 0 deletions
diff --git a/app/controllers/projects/artifacts_controller.rb b/app/controllers/projects/artifacts_controller.rb
index abc283d7aa9..6484a713f8e 100644
--- a/app/controllers/projects/artifacts_controller.rb
+++ b/app/controllers/projects/artifacts_controller.rb
@@ -7,6 +7,7 @@ class Projects::ArtifactsController < Projects::ApplicationController
before_action :authorize_read_build!
before_action :authorize_update_build!, only: [:keep]
before_action :extract_ref_name_and_path
+ before_action :set_request_format, only: [:file]
before_action :validate_artifacts!
before_action :entry, only: [:file]
@@ -101,4 +102,12 @@ class Projects::ArtifactsController < Projects::ApplicationController
render_404 unless @entry.exists?
end
+
+ def set_request_format
+ request.format = :html if set_request_format?
+ end
+
+ def set_request_format?
+ request.format != :json
+ end
end
diff --git a/changelogs/unreleased/blackst0ne-rails5-expected-the-response-to-have-status-code-ok-but-it-was-404.yml b/changelogs/unreleased/blackst0ne-rails5-expected-the-response-to-have-status-code-ok-but-it-was-404.yml
new file mode 100644
index 00000000000..fad15de2dd5
--- /dev/null
+++ b/changelogs/unreleased/blackst0ne-rails5-expected-the-response-to-have-status-code-ok-but-it-was-404.yml
@@ -0,0 +1,5 @@
+---
+title: "[Rails5] Set request.format for artifacts_controller"
+merge_request: 19937
+author: "@blackst0ne"
+type: fixed