Skip to main content

Configuring rate limits

You can set rate limits for GitHub Enterprise Server using the Management Console.

Who can use this feature

Site administrators can configure rate limits for a GitHub Enterprise Server instance.

About rate limits for GitHub Enterprise Server

To prevent excessive use of resources on your GitHub Enterprise Server instance that could affect the instance's availability or performance for all users, you can configure rate limits. Rate limits are configurable for the GitHub Enterprise Server APIs and GitHub Actions.

Implement rate limits carefully and communicate frequently with your users as you tune the limits. To avoid interrupting your users' work, GitHub recommends that you start with permissive rate limits, and gradually tune the limits to suit your environment.

You can also configure rate limits for authentication attempts to the Management Console. For more information, see "Accessing the management console."

Enabling rate limits for the GitHub Enterprise Server APIs

Excessive numbers of requests to the GitHub Enterprise Server APIs can affect the availability and performance of your instance. For more information about how rate limits for the API affect your users, see "Resources in the REST API."

You can exempt a list of users from API rate limits using the ghe-config utility in the administrative shell. For more information, see "Command-line utilities."

Note: The Management Console lists the time period (per minute or per hour) for each rate limit.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  3. In the left sidebar, click Management Console. Management Console tab in the left sidebar

  4. Under "Rate Limiting", select Enable HTTP API Rate Limiting. Checkbox for enabling API rate limiting

  5. Type limits for authenticated and unauthenticated requests for each API, or accept the pre-filled default limits.

  6. Under the left sidebar, click Save settings.

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

  7. Wait for the configuration run to complete.

    Configuring your instance

Enabling secondary rate limits

Setting secondary rate limits protects the overall level of service on your GitHub Enterprise Server instance.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  3. In the left sidebar, click Management Console. Management Console tab in the left sidebar

  4. Under "Rate Limiting", select Enable Secondary Rate Limiting. Checkbox for enabling secondary rate limiting

  5. Type limits for Total Requests, CPU Limit, and CPU Limit for Searching, or accept the pre-filled default limits.

  6. Under the left sidebar, click Save settings.

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

  7. Wait for the configuration run to complete.

    Configuring your instance

Enabling rate limits for Git

If a member of GitHub's staff has recommended it, you can apply Git rate limits per repository network or per user ID. Git rate limits are expressed in concurrent operations per minute, and are adaptive based on the current CPU load.

Warning: We encourage you to leave this setting disabled unless directly recommended by a member of GitHub's staff. Git operations are rarely the leading driver of CPU and RAM usage. Enabling this feature can make Git operations more likely to fail under high load conditions but does not address the underlying cause of those conditions.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  3. In the left sidebar, click Management Console. Management Console tab in the left sidebar

  4. Under "Rate Limiting", select Enable Git Rate Limiting. Checkbox for enabling Git rate limiting

  5. Type limits for each repository network or user ID. Fields for repository network and user ID limits

  6. Under the left sidebar, click Save settings.

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

  7. Wait for the configuration run to complete.

    Configuring your instance