summaryrefslogtreecommitdiff
path: root/doc/security/rate_limits.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/security/rate_limits.md')
-rw-r--r--doc/security/rate_limits.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/security/rate_limits.md b/doc/security/rate_limits.md
index cdf99e8377d..ac532ee491a 100644
--- a/doc/security/rate_limits.md
+++ b/doc/security/rate_limits.md
@@ -70,6 +70,26 @@ For configuration information, see
## Non-configurable limits
+### Git operations using SSH
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78373) in GitLab 14.7.
+> - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79419) in GitLab 14.8.
+
+GitLab rate limits Git operations using SSH by user account and project. If a request from a user for a Git operation
+on a project exceeds the rate limit, GitLab drops further connection requests from that user for the project.
+
+The rate limit applies at the Git command ([plumbing](https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)) level.
+Each command has a rate limit of 600 per minute. For example:
+
+- `git push` has a rate limit of 600 per minute.
+- `git pull` has its own rate limit of 600 per minute.
+
+Because the same commands are shared by `git-upload-pack`, `git pull`, and `git clone`, they share a rate limit.
+
+The requests/minute threshold for this rate limit is not configurable. Self-managed customers can disable this
+rate limit by [disabling the feature flag](../administration/feature_flags.md#enable-or-disable-the-feature)
+with `Feature.disable(:rate_limit_gitlab_shell)`.
+
### Repository archives
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25750) in GitLab 12.9.