You may be rate limited by GitHub Actions when you scale your usage. Some limits can be increased by contacting conosco por meio do Portal de suporte do GitHub.
Unless otherwise stated, the expected behaviour when a limit is reached is that the workflow/job will get cancelled.
These limits are subject to change.
Existing system limits
Limit category | Limit | Threshold | Description | Can GitHub Support increase? |
---|---|---|---|---|
Workflow execution limit | Workflow run time | 35 days / workflow run | If a workflow run reaches this limit, the workflow run is cancelled. This period includes execution duration, and time spent on waiting and approval. | |
Workflow execution limit | Gate approval time | 30 days | A workflow may wait for up to 30 days on environment approvals. | |
Workflows queuing | Workflow trigger event rate limit | 1500 events / 10 seconds / repository | Each repository is limited to events triggering a workflow run. | Support ticket |
Workflows queuing | Workflow run queued | 500 workflow runs / 10 seconds | When the limit is reached, the workflow runs that were supposed to be triggered by the webhook events will be blocked and will not be queued. Reusable workflows are viewed as a single entity. For example, a run with 30 reusable workflows counts as 1 in this instance. | |
Workflow execution | Job Matrix | 256 jobs / workflow run | A job matrix can generate a maximum of jobs per workflow run. This limit applies to both GitHub-hosted and self-hosted runners. | |
Self-hosted | Runner registrations | 1500 runners / 5 minutes / repository/org/enterprise | Runners can be registered per repository/organization/enterprise. | Support ticket |
Self-hosted | Runners per runner group | 10,000 runners | Runners registered at the same time per runner group. | |
Self-hosted | Job execution time | 5 days | Each job in a workflow can run for up to 5 days of execution time. If a job reaches this limit, the job is terminated and fails. | |
Self-hosted | Job queue time | 24 hours | A job can be in the queue for 24 hours before it is automatically cancelled. | |
All GitHub-hosted runners | Job Concurrency | Varies | See Job concurrency limits for GitHub-hosted runners. | Support ticket |
All GitHub-hosted runners | Job execution time | 6 hours | Each job in a workflow can run for up to 6 hours of execution time. If a job reaches this limit, the job is terminated and fails. | |
All GitHub-hosted runners | Storage limits | Varies | For more information, see Storage limits for all GitHub-hosted runners. | |
Larger runners | Per runner concurrency limit | Varies by runner type | Established when setting up a runner. Normally 1,000 max for Linux CPU runners, but varies by type. See Job concurrency limits for GitHub-hosted runners. | Support ticket |
Larger runners | Static IP limits | 10-50 IPs | 10 IPs for team plans, 50 IPs for enterprise, and the limit is configurable. | Support ticket |
Larger runners | Private IP scaling for vnet injection | 30% buffer | You need a buffer to accommodate the maximum job concurrency you anticipate. See Private IP scaling for vnet injection on larger runners. | Configurable Azure virtual network |
Job concurrency limits for GitHub-hosted runners
GitHub Support can increase job concurrency limits for GitHub Actions. To request an increase, submit a support ticket.
Runner type | GitHub plan | Total concurrent jobs | Maximum concurrent macOS jobs | Maximum concurrent GPU jobs |
---|---|---|---|---|
Standard GitHub-hosted runner | Free | 20 | 5 | Not applicable |
Standard GitHub-hosted runner | Pro | 40 | 5 | Not applicable |
Standard GitHub-hosted runner | Team | 60 | 5 | Not applicable |
Standard GitHub-hosted runner | Enterprise | 500 | 50 | Not applicable |
Larger runner | Team | 1000 | 5 | 100 |
Larger runner | Enterprise | 1000 | 50 | 100 |
Observação
The maximum concurrent macOS jobs is shared across standard GitHub-hosted runners and GitHub-hosted larger runners.
Storage limits for all GitHub-hosted runners
GitHub Support cannot increase storage limits for GitHub Actions.
GitHub plan | Storage | Minutes (per month) |
---|---|---|
GitHub Free | 500 MB | 2,000 |
GitHub Pro | 1 GB | 3,000 |
GitHub Free for organizations | 500 MB | 2,000 |
GitHub Team | 2 GB | 3,000 |
GitHub Enterprise Cloud | 50 GB | 50,000 |
Private IP scaling for vnet injection on larger runners
When using larger runners with vnet injection, you need to determine the appropriate subnet IP address range, for which we recommend adding a buffer to the maximum job concurrency you anticipate. For instance, if the network configuration's runners are set to a maximum job concurrency of 300, utilize a subnet IP address range that can accommodate at least 390 runners. Note that Azure reserves 5 IPs in every subnet (first 4 and last 1), which sets a minimum practical subnet size depending on runner requirements. Very small subnets (like /29 or smaller) may not provide enough usable addresses for your needs.
Commonly hit dependent service limits
GitHub's REST API rate limits apply to GitHub Actions users, those that are commonly hit are:
-
Unauthenticated users - Será possível fazer solicitações não autenticadas se você estiver buscando apenas dados públicos. As solicitações não autenticadas estão associadas ao endereço IP original, e não ao usuário ou aplicativo que fez a solicitação.
O limite de taxa primária para solicitações não autenticadas é de 60 por hora.
-
Authenticated users - É possível usar um personal access token para fazer solicitações à API. Além disso, você pode autorizar um GitHub App ou OAuth app, que depois podem fazer solicitações à API em seu nome.
Todas essas solicitações contam para o limite de taxa pessoal de solicitações de 5.000 por hora. O limite de taxa será mais alto (15.000 solicitações por hora) se as solicitações forem feitas em seu nome por um GitHub App pertencente a uma organização do GitHub Enterprise Cloud. Do mesmo modo, as solicitações realizadas em seu nome por um OAuth app pertencente ou aprovado por uma organização do GitHub Enterprise Cloud terão um limite de taxa mais alto (de 15.000 solicitações por hora) se você for membro da organização GitHub Enterprise Cloud.
-
GitHub app installations - Os GitHub Apps que se autenticam com um token de acesso de instalação usam o limite mínimo da taxa de instalação de 5.000 solicitações por hora. Se a instalação estiver em uma organização GitHub Enterprise Cloud, terá um limite de taxa de 15.000 solicitações por hora.
No caso das instalações que não estão em uma organização GitHub Enterprise Cloud, o limite de taxa será ajustado conforme o número de usuários e repositórios. As instalações com mais de 20 repositórios recebem outras 50 solicitações por hora para cada repositório. Instalações que estão em uma organização com mais de 20 usuários recebem outras 50 solicitações por hora para cada uma dessas pessoas. Não é possível ampliar o limite de taxa para além de 12.500 solicitações por hora.
Os limites de taxa primária para tokens de acesso do usuário do GitHub App (diferentemente dos tokens de acesso de instalação) são determinados pelos limites de taxa primária do usuário autenticado. Esse limite de taxa é combinado com todas as solicitações que outro GitHub App ou OAuth app faça em nome do usuário, bem como todas as solicitações realizadas pelo usuário com um personal access token. Para saber mais, confira Limites de taxa para a API REST.
-
OAuth apps - Nesse caso, o limite de taxa é de 5.000 solicitações por hora, por OAuth app. Se o aplicativo pertencer a uma organização do GitHub Enterprise Cloud, o limite de taxa será de 15.000 solicitações por hora.
-
GITHUB TOKEN - O limite de taxa de
GITHUB_TOKEN
é de mil solicitações por hora e por repositório. Para solicitações de recursos que pertencem a uma conta de GitHub Enterprise Cloud, o limite é de 15.000 solicitações por hora e por repositório. -
Secondary rate limits - In addition to primary rate limits, GitHub enforces secondary rate limits in order to prevent abuse and keep the API available for all users, these are not configurable with GHEC. For more information, see Limites de taxa para a API REST.