gitlab-org--gitlab-foss/app
Stan Hu 4be77d0b05 Improve multiple branch push performance by memoizing permission checking
If you attempt to push thousands of branches at once, the 60-second timeout
will occur because GitAccess checking does a lot of work to check if the
user has permission to push to a branch. This changes does two things:

1. Instead of making 1 DB query per branch push, use a memoized list of protected branches to check
2. Memoize what permissions the user has to perform on this project

On a test of 10,000 branch pushes, this prevents gitlab-shell from hitting the 60-second
timeout.

Closes #17225
2016-05-09 01:17:14 -07:00
..
assets Fix build notification on merge request page change even if the build status didn't change 2016-05-08 21:41:09 +02:00
controllers Log to application.log when an admin starts and stops impersonating a user 2016-05-04 09:21:34 -07:00
finders Prevent private snippets in public/internal projects from being leaked via API 2016-04-25 12:02:06 -07:00
helpers Update SVG sanitizer to conform to SVG 1.1 2016-05-06 23:20:24 -07:00
mailers Support e-mail notifications for comments on project snippets 2016-05-02 11:01:32 -07:00
models Improve multiple branch push performance by memoizing permission checking 2016-05-09 01:17:14 -07:00
services Merge branch 'escape-commit-titles' into 'master' 2016-05-08 23:53:49 +00:00
uploaders
validators
views Fix build notification on merge request page change even if the build status didn't change 2016-05-08 21:41:09 +02:00
workers Merge branch 'create-wikis-during-check' into 'master' 2016-05-04 14:10:49 +00:00