참고: GitHub App 대신 OAuth app을(를) 빌드하는 것이 좋습니다. 설치 액세스 토큰을 사용하는 GitHub Apps의 트래픽률 제한은 리포지토리 수와 조직 사용자 수로 확장됩니다. 반대로 OAuth apps은(는) 트래픽률 제한이 낮으며 확장되지 않습니다. 자세한 내용은 "GitHub 앱과 OAuth 앱 간의 차이점" 및 "GitHub 앱 만들기 정보"을(를) 참조하세요.
OAuth apps의 트래픽률 제한 정보
GitHub은(는) OAuth app이(가) 특정 기간 내에 서버에 보낼 수 있는 요청 수에 대한 제한을 설정합니다. 이 제한은 남용 및 서비스 거부 공격을 방지하고 모든 사용자가 시스템을 계속 사용할 수 있도록 합니다.
OAuth apps은(는) 사용자가 앱에 권한을 부여한 후 사용자 액세스 토큰을 사용하여 요청하면 사용자를 대신해 작동합니다. OAuth apps의 사용자 액세스 토큰 요청은 OAuth 토큰으로 인증됩니다. 자세한 내용은 "OAuth 앱 권한 부여"을 참조하세요.
OAuth app의 트래픽률 제한 결정
RATE API를 사용하여 언제든지 현재 속도 제한 상태를 확인할 수 있습니다. 자세한 내용은 "REST API의 리소스"을 참조하세요.
OAuth apps에서 다음 두 가지 작업 중에 트래픽률 제한이 발생할 수 있습니다.
- 사용자를 로그인할 때
- API를 호출할 때
OAuth apps은(는) 항상 토큰을 캐시해야 하며 사용자 로그인은 거의 필요하지 않습니다. 반복적으로 로그인하는 사용자는 버그의 징후일 수 있으며, 앱과 GitHub간의 무한 루프로 가장 흔하게 나타납니다. 앱이 1시간 내에 10번 사용자를 로그인하는 경우 같은 시간 내에 다음 로그인을 수행하려면 애플리케이션을 재인증받도록 합니다. 이렇게 하면 사용자가 앱이 너무 많은 토큰을 발행하고 있음을 인식하고, 자칫 무한 루프가 될 수 있는 문제를 방지할 수 있습니다. 이 10회의 로그인 트래픽률 제한은 OAuth apps에도 적용되는 10개의 토큰 제한과 다릅니다. 10개의 토큰 한도에 대한 자세한 내용은 "OAuth 앱 권한 부여"을(를) 참조하세요.
OAuth apps도 시간당 및 인증된 사용자당 15,000개의 요청으로 제한됩니다. 사용자 또는 사용자가 소유한 personal access token에 의해 승인된 OAuth apps의 모든 요청과 사용자의 인증 자격 증명으로 인증된 요청은 해당 사용자에 대해 시간당 15,000 요청의 동일한 할당량을 공유합니다.
추가 참고 자료
- GraphQL API 설명서의 "Rate limits and node limits for the GraphQL API"