Files
ragflow/common/data_source/github/rate_limit_utils.py

21 lines
684 B
Python

import time
import logging
from datetime import datetime
from datetime import timedelta
from datetime import timezone
from github import Github
def sleep_after_rate_limit_exception(github_client: Github) -> None:
"""
Sleep until the GitHub rate limit resets.
Args:
github_client: The GitHub client that hit the rate limit
"""
sleep_time = github_client.get_rate_limit().core.reset.replace(tzinfo=timezone.utc) - datetime.now(tz=timezone.utc)
sleep_time += timedelta(minutes=1) # add an extra minute just to be safe
logging.info("Ran into Github rate-limit. Sleeping %s seconds.", sleep_time.seconds)
time.sleep(sleep_time.total_seconds())