blob: 49bc631b32c1dc00b5e39582acbe861bc70e0f79 [file] [log] [blame] [view] [edit]
This plugin allows to enforce quotas in Gerrit.
To protect a Gerrit installation it makes sense to limit the resources
that a project or group can consume. To do this a Gerrit administrator
can use this plugin to define quotas on project namespaces and define
rate limits per user group.
The @PLUGIN@ plugin supports the following quotas:
* Maximum number of projects in a namespace
* The maximum total file size of a repository in a namespace
* The maximum total file size of all repositories in a namespace
The measured repository sizes can be published periodically to registered
UsageDataPublishedListeners.
The @PLUGIN@ plugin supports the following rate limits:
* `uploadpack` requests which are executed when a client runs a fetch command.
* Maximum number of REST API calls
Rate limits define the maximum request rate for users in a given group
for a given request type.
> **NOTE**:
> * When rate limiting is enforced for REST API calls, it operates at
the HTTP protocol level. When a client exceeds the allowed
request rate, the server responds with an HTTP status code 429 (Too Many Requests).
>
> * Unlike REST API rate limiting, rate limiting for Git upload pack operations
happens at the Git protocol level. Even if the rate limit is exceeded, the server
still responds with an HTTP status code 200 (OK), indicating a successful HTTP request.
However, within the Git protocol response, the client will receive a message indicating
that it has exceeded the rate limit.