download: Log Github rate-limit status

This commit is contained in:
Max Gautier
2025-01-10 10:41:27 +01:00
parent 81790cab91
commit b08c5e8b14

View File

@@ -6,6 +6,7 @@
import sys import sys
import os import os
import logging
from itertools import groupby, chain from itertools import groupby, chain
from more_itertools import partition from more_itertools import partition
@@ -13,6 +14,7 @@ from functools import cache
import argparse import argparse
import requests import requests
import hashlib import hashlib
from datetime import datetime
from ruamel.yaml import YAML from ruamel.yaml import YAML
from packaging.version import Version, InvalidVersion from packaging.version import Version, InvalidVersion
@@ -20,6 +22,8 @@ from typing import Optional
CHECKSUMS_YML = "../roles/kubespray-defaults/defaults/main/checksums.yml" CHECKSUMS_YML = "../roles/kubespray-defaults/defaults/main/checksums.yml"
logger = logging.getLogger(__name__)
def open_checksums_yaml(): def open_checksums_yaml():
yaml = YAML() yaml = YAML()
yaml.explicit_start = True yaml.explicit_start = True
@@ -207,7 +211,14 @@ def download_hash(only_downloads: [str]) -> None:
"Authorization": f"Bearer {os.environ['API_KEY']}", "Authorization": f"Bearer {os.environ['API_KEY']}",
} }
) )
if 'x-ratelimit-used' in response.headers._store:
logger.info("Github graphQL API ratelimit status: used %s of %s. Next reset at %s",
response.headers['X-RateLimit-Used'],
response.headers['X-RateLimit-Limit'],
datetime.fromtimestamp(int(response.headers["X-RateLimit-Reset"]))
)
response.raise_for_status() response.raise_for_status()
def valid_version(possible_version: str) -> Optional[Version]: def valid_version(possible_version: str) -> Optional[Version]:
try: try:
return Version(possible_version) return Version(possible_version)