注意:请考虑生成 GitHub App 而不是 OAuth app。 使用安装访问令牌的 GitHub Apps 的速率限制随存储库数和组织用户数而缩放。 相反,OAuth apps 的速率限制较低,并且无法缩放。 有关详细信息,请参阅“GitHub 应用和 OAuth 应用之间的差异”和“关于创建 GitHub 应用”。
关于 OAuth apps 的速率限制
默认禁用 GitHub Enterprise Server 的速率限制。 请与站点管理员联系,以确认实例的速率限制。
为 GitHub Enterprise Server 实例启用速率限制后,OAuth app 在特定时间段内可以发送到服务器的请求数有限制。 此限制有助于确保系统仍可供所有用户使用。
OAuth apps 在用户授权应用后使用用户访问令牌发出请求,从而代表用户执行操作。 来自 OAuth apps 的用户访问令牌请求使用 OAuth 令牌进行身份验证。 有关详细信息,请参阅“授权 OAuth 应用”。
确定 OAuth app 的速率限制
你可以在任何时候使用 REST API 确认你当前的速率限制状态。 有关详细信息,请参阅“REST API 中的资源”。
OAuth apps 可能会在执行以下两项操作时遇到速率限制:
- 登录用户时。
- 进行 API 调用时。
OAuth apps 应始终缓存其令牌,并且很少需要登录用户。 反复登录用户可能表明存在 bug,最常被视为应用和 GitHub 之间的无限循环。 如果应用在一小时内使用户登录十次,则同一小时内的下一次登录将需要对该应用程序重新授权。 这确保用户知道应用正在构建大量令牌,并且中断可能会发生的无限循环。 这 10 _个登录_速率限制不同于为 OAuth apps 强制执行的 10 个_令牌_限制。 有关 10 个令牌限制的信息,请参阅“授权 OAuth 应用”。
默认情况下,OAuth apps 还限制为每个经身份验证的用户每小时 5,000 个请求。 来自用户授权的 OAuth apps 或用户拥有的 personal access token 的所有请求,以及使用任何用户的身份验证凭据进行身份验证的请求,都共享该用户每小时 5,000 个请求的相同配额。
延伸阅读
- GraphQL API 文档中的“Rate limits and node limits for the GraphQL API”