44import os
55import sys
66import hashlib
7+ from urllib .parse import urlparse
8+
9+ def github_headers (url ):
10+ token = os .environ .get ("GITHUB_TOKEN" )
11+ if not token :
12+ return {}
13+ host = urlparse (url ).hostname or ""
14+ if host == "api.github.com" or host == "github.com" or host .endswith (".github.com" ) or host == "objects.githubusercontent.com" :
15+ return {"Authorization" : f"Bearer { token } " }
16+ return {}
717
818def get_gradle_version (base_version ):
919 response = requests .get (f"https://services.gradle.org/versions/{ base_version } " , timeout = 10 )
@@ -25,15 +35,15 @@ def get_gradle_version(base_version):
2535
2636def calculate_sha256 (url ):
2737 sha256_hash = hashlib .sha256 ()
28- with requests .get (url , stream = True , timeout = 300 ) as r :
38+ with requests .get (url , stream = True , timeout = 300 , headers = github_headers ( url ) ) as r :
2939 r .raise_for_status ()
3040 for chunk in r .iter_content (chunk_size = 8192 ):
3141 sha256_hash .update (chunk )
3242 return sha256_hash .hexdigest ()
3343
3444def get_sha256 (url ):
3545 try :
36- response = requests .get (url , timeout = 10 )
46+ response = requests .get (url , timeout = 10 , headers = github_headers ( url ) )
3747 response .raise_for_status ()
3848 return response .text .strip ()
3949 except requests .exceptions .HTTPError as e :
@@ -44,7 +54,8 @@ def get_sha256(url):
4454 raise
4555
4656def get_graalvm_info (jdk_version ):
47- response = requests .get ("https://api.github.com/repos/graalvm/graalvm-ce-builds/releases?per_page=20&page=1" , timeout = 10 )
57+ url = "https://api.github.com/repos/graalvm/graalvm-ce-builds/releases?per_page=20&page=1"
58+ response = requests .get (url , timeout = 10 , headers = github_headers (url ))
4859 response .raise_for_status ()
4960 releases = response .json ()
5061
0 commit comments