summaryrefslogtreecommitdiff
path: root/app/controllers/projects/repositories_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects/repositories_controller.rb')
-rw-r--r--app/controllers/projects/repositories_controller.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
index 33ce37ef4fb..1cd4c5b6137 100644
--- a/app/controllers/projects/repositories_controller.rb
+++ b/app/controllers/projects/repositories_controller.rb
@@ -47,8 +47,13 @@ class Projects::RepositoriesController < Projects::ApplicationController
end
def set_cache_headers
- expires_in cache_max_age(archive_metadata['CommitId']), public: Guest.can?(:download_code, project)
- fresh_when(etag: archive_metadata['ArchivePath'])
+ commit_id = archive_metadata['CommitId']
+
+ expires_in(cache_max_age(commit_id),
+ public: Guest.can?(:download_code, project), must_revalidate: true, stale_if_error: 5.minutes,
+ stale_while_revalidate: 1.minute, 's-maxage': 1.minute)
+
+ fresh_when(strong_etag: [commit_id, archive_metadata['ArchivePath']])
end
def archive_not_modified?