Skip to main content

OAuth 应用速率限制

速率限制将流量速率限制为 GitHub.com,以帮助确保所有用户的一致访问。

注意

请考虑构建GitHub App,而不是OAuth app。 GitHub Apps 使用安装访问令牌时的速率限制会随仓库数量和组织用户数量的增加而提高。 相反, OAuth apps 具有较低的速率限制,并且不缩放。 有关详细信息,请参阅 GitHub 应用和 OAuth 应用之间的差异关于创建GitHub应用

警告

OAuth apps 受每小时 2,000 个访问令牌请求的速率限制。 如果应用程序超出此限制,后续生成新访问令牌的请求将被暂时阻止,且你可能会收到错误响应。 这可能会导致暂时性中断****。 请相应地计划你的实现,以避免潜在的服务中断。

关于 OAuth apps 的速率限制

OAuth apps 代表用户执行操作,方法是在用户授权应用后使用用户访问令牌发出请求。 有关详细信息,请参阅“授权 OAuth 应用”。

这些用户访问令牌的生成受到速率限制。 此外,使用这些用户访问令牌发出的 API 请求受到速率限制。

登录用户的速率限制

OAuth apps 应始终缓存其令牌,并且很少需要登录用户。 反复让用户登录可能表明存在 bug,最常见的表现是应用与 GitHub 之间出现无限循环。 如果应用在一小时内使用户登录十次,则同一小时内的下一次登录将需要对该应用程序重新授权。 这确保用户知道应用正在构建大量令牌,并且中断可能会发生的无限循环。 这项 10 次_登录_速率限制不同于对OAuth apps同样实施的 10 个_令牌_限制。 有关 10 个令牌限制的信息,请参阅“授权 OAuth 应用”。

API 的速率限制

GitHub 设置在特定时间段内对 REST API 可以发出的请求 OAuth app 数的限制。 它还对特定时间段内可对 GraphQL API 进行查询的 OAuth app 点值设置限制。 除了这些主要速率限制之外, GitHub 还可以应用次要速率限制。 这些限制有助于防止滥用和拒绝服务攻击,并确保系统仍可供所有用户使用。

有关详细信息,请参阅 REST API 的速率限制GraphQL API 的速率限制和查询限制

延伸阅读