注意
建议构建 GitHub 应用而不是 OAuth 应用。使用安装访问令牌的 GitHub 应用的速率限制会随着仓库数量和组织用户数量而变化。相反,OAuth 应用的速率限制较低,并且不会随着规模变化。更多信息,请参见“GitHub 应用和 OAuth 应用之间的区别”和“关于创建 GitHub 应用”。
关于 OAuth 应用的速率限制
OAuth 应用代表用户执行操作,在用户授权应用后使用用户访问令牌发出请求。更多信息,请参见“授权 OAuth 应用”。
这些用户访问令牌的生成受速率限制。此外,使用这些用户访问令牌发出的 API 请求也受速率限制。
用户登录的速率限制
OAuth 应用应始终缓存其令牌,并且很少需要登录用户。反复登录用户可能表示存在错误,最常见的情况是应用和 GitHub 之间的无限循环。如果应用在一小时内登录用户十次,则同一小时内的下一次登录将需要重新授权该应用。这样可以确保用户知道该应用正在生成如此多的令牌,并为可能存在的无限循环提供中断。此十次登录速率限制与 OAuth 应用也强制执行的十次令牌限制不同。有关十次令牌限制的信息,请参见“授权 OAuth 应用”。
API 的速率限制
GitHub 对 OAuth 应用在特定时间段内可以向 REST API 发出的请求数量设置了限制。它还对 OAuth 应用在特定时间段内可以向 GraphQL API 发出的查询的点数设置了限制。除了这些主要的速率限制之外,GitHub 还可能应用次要速率限制。这些限制有助于防止滥用和拒绝服务攻击,并确保系统对所有用户都可用。
更多信息,请参见“REST API 的速率限制”和“GraphQL API 的速率限制和节点限制”。