Rate limits on Git SSH operations

Introduced in GitLab 14.7 with a flag named rate_limit_gitlab_shell. Available by default without a feature flag from 15.8.

GitLab applies rate limits to Git operations that use SSH by user account and project. When the rate limit is exceeded, GitLab rejects further connection requests from that user for the project.

The rate limit applies at the Git command (plumbing) 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.

Users on self-managed GitLab can disable this rate limit.

Configure GitLab Shell operation limit

Introduced in GitLab 16.2.

Git operations using SSH is enabled by default. Defaults to 600 per user per minute.

  1. On the left sidebar, select Your work > Admin Area.
  2. On the left sidebar, select Settings > Network.
  3. Expand Git SSH operations rate limit.
  4. Enter a value for Maximum number of Git operations per minute.
  5. Select Save changes.