def safe_github_request()

in tools/release-notes-automator/generate_release_notes.py [0:0]


def safe_github_request(*args, **kwargs):
    """
    Wrapper for requests.get that handles GitHub rate limiting gracefully.
    Prints a clear error if rate limit is exceeded.
    """
    try:
        response = requests.get(*args, **kwargs)
        response.raise_for_status()
        return response
    except requests.exceptions.HTTPError as e:
        # If rate limit is exceeded, print a helpful message and exit
        if hasattr(e.response, "status_code") and e.response.status_code == 403 and "rate limit" in e.response.text.lower():
            print("\033[91mERROR: GitHub API rate limit exceeded. Please set a GITHUB_TOKEN environment variable for higher limits.\033[0m")
            print("See: https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting")
            exit(1)
        raise