Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
As mentioned in
https://gitlab.com/gitlab-org/gitlab-ee/issues/9035#note_129093444,
Rails 5 switched ActionDispatch::Request so that it no longer inherits
Rack::Request directly. A middleware that uses Rack::Request to
read the environment may see stale request parameters if
another middleware modifies the environment via ActionDispatch::Request.
To be safe, we should be using ActionDispatch::Request everywhere.
|
|
Enables frozens string for the following:
* lib/gitlab/conflict/**/*.rb
* lib/gitlab/cross_project_access/**/*.rb
* lib/gitlab/cycle_analytics/**/*.rb
* lib/gitlab/data_builder/**/*.rb
* lib/gitlab/database/**/*.rb
* lib/gitlab/dependency_linker/**/*.rb
* lib/gitlab/diff/**/*.rb
* lib/gitlab/downtime_check/**/*.rb
* lib/gitlab/email/**/*.rb
* lib/gitlab/etag_caching/**/*.rb
Partially addresses gitlab-org/gitlab-ce#47424.
|
|
When a request contains an ETag value in its If-None-Match header, the backend
may send a request ID (from Rack) that does not correspond to a value in Peek's
Redis cache (because we aborted the Rails processing in our ETag middleware).
Because a cached response (304) has to replace the headers with those from the
previous 200 - https://tools.ietf.org/html/rfc7234#section-4.3.4 - we add a
custom header that will only be present in cache hits, that can tell the
frontend to ignore these.
|
|
This was edited to the request, but this won't work if the data is not
available at the time of setting the key for the first time.
|
|
|
|
Extract route matching logic to Gitlab::EtagCaching::Router.
Fix pipeline routes:
1. "project_pipelines" has to come after "commit_pipelines" and
"merge_request_pipelines" because it is more generic
2. "commit_pipelines": "\s" (any whitespace character) => "\S"
(any non-whitespace character).
|
|
Also poll for pipeline changes on:
- Pipeline table on commit page
- Pipeline table on merge request page
- Pipeline table on new merge request page
|
|
|
|
Enable caching in the Etag::Middleware and when a pipeline changes
status, expire the cache for the project pipelines path.
|
|
|
|
|
|
NamespaceValidator::WILDCARD_ROUTES is less restrictive than
ProjectPathValidator::RESERVED and we really have to avoid only
routes that contain wildcard names.
|
|
Implement module for setting "Poll-Interval" response header.
Return 429 in ETag caching middleware when polling is disabled.
|
|
See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9235
|
|
|