summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorSean Carroll <scarroll@gitlab.com>2022-01-19 10:32:23 +0000
committerIgor Drozdov <idrozdov@gitlab.com>2022-01-19 10:32:23 +0000
commitfca4ca74637a91bfbabe532467fa1c0bb77eb921 (patch)
tree69acd62465f867f7d5996c1380a2f9d4626e3fb9 /README.md
parent7c03c6e65d8b090f0370d7b90f3cbd4a117e3351 (diff)
downloadgitlab-shell-fca4ca74637a91bfbabe532467fa1c0bb77eb921.tar.gz
Rate limiting documentation
Diffstat (limited to 'README.md')
-rw-r--r--README.md12
1 files changed, 11 insertions, 1 deletions
diff --git a/README.md b/README.md
index a45b30d..b6365b4 100644
--- a/README.md
+++ b/README.md
@@ -94,7 +94,7 @@ If no `GITALY_CONNECTION_INFO` is set, the test suite will still run, but any
tests requiring Gitaly will be skipped. They will always run in the CI
environment.
-## Git LFS remark
+## Git LFS
Starting with GitLab 8.12, GitLab supports Git LFS authentication through SSH.
@@ -113,6 +113,16 @@ guidelines:
- Logging too much is better than not logging enough. If a message seems too
verbose, consider reducing the log level before removing the message.
+## Rate Limiting
+
+GitLab Shell performs rate-limiting by user account and project for git operations. GitLab Shell accepts git operation requests and then makes a call to the Rails rate-limiter (backed by Redis). If the `user + project` exceeds the rate limit then GitLab Shell will then drop further connection requests for that `user + project`.
+
+The rate-limiter is applied at the git command (plumbing) level. Each command has a rate limit of 600/minute. For example, `git push` has 600/minute and `git pull` has another 600/minute.
+
+Because they are using the same plumbing command `git-upload-pack`, `git pull` and `git clone` are in effect the same command for the purposes of rate-limiting.
+
+There is also a rate-limiter in place in Gitaly, but the calls will never be made to Gitaly if the rate limit is exceeded in Gitlab Shell (Rails).
+
## Releasing
See [PROCESS.md](./PROCESS.md)