@@ -75,7 +75,10 @@ def run_cmd(
7575
7676tag_cre = re .compile (r"(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:([ab]|rc)(\d+))?$" )
7777
78- headers = {"Authorization" : f"ApiKey { auth_info } " , "Content-Type" : "application/json" }
78+ session = requests .Session ()
79+ session .headers .update (
80+ {"Authorization" : f"ApiKey { auth_info } " , "Content-Type" : "application/json" }
81+ )
7982
8083github_oidc_provider = "https://github.com/login/oauth"
8184google_oidc_provider = "https://accounts.google.com"
@@ -174,7 +177,7 @@ def slug_for(release: str) -> str:
174177
175178
176179def sigfile_for (release : str , rfile : str ) -> str :
177- return download_root + f" { release } /{ rfile } .asc"
180+ return f" { download_root } { release } /{ rfile } .asc"
178181
179182
180183def sha256sum_for (filename : str ) -> str :
@@ -227,7 +230,7 @@ def build_file_dict(
227230 "release" : f"/api/v1/downloads/release/{ rel_pk } /" ,
228231 "description" : add_desc ,
229232 "is_source" : os_pk == 3 ,
230- "url" : download_root + f" { base_version (release )} /{ rfile } " ,
233+ "url" : f" { download_root } { base_version (release )} /{ rfile } " ,
231234 "sha256_sum" : sha256sum_for (filename ),
232235 "filesize" : filesize_for (filename ),
233236 "download_button" : add_download ,
@@ -238,20 +241,20 @@ def build_file_dict(
238241 # Upload Sigstore signature
239242 if os .path .exists (filename + ".sig" ):
240243 d ["sigstore_signature_file" ] = (
241- download_root + f" { base_version (release )} /{ rfile } .sig"
244+ f" { download_root } { base_version (release )} /{ rfile } .sig"
242245 )
243246 # Upload Sigstore certificate
244247 if os .path .exists (filename + ".crt" ):
245- d ["sigstore_cert_file" ] = download_root + f" { base_version (release )} /{ rfile } .crt"
248+ d ["sigstore_cert_file" ] = f" { download_root } { base_version (release )} /{ rfile } .crt"
246249 # Upload Sigstore bundle
247250 if os .path .exists (filename + ".sigstore" ):
248251 d ["sigstore_bundle_file" ] = (
249- download_root + f" { base_version (release )} /{ rfile } .sigstore"
252+ f" { download_root } { base_version (release )} /{ rfile } .sigstore"
250253 )
251254 # Upload SPDX SBOM file
252255 if os .path .exists (filename + ".spdx.json" ):
253256 d ["sbom_spdx2_file" ] = (
254- download_root + f" { base_version (release )} /{ rfile } .spdx.json"
257+ f" { download_root } { base_version (release )} /{ rfile } .spdx.json"
255258 )
256259
257260 return d
@@ -291,9 +294,9 @@ def list_files(
291294@cache
292295def query_object (base_url : str , objtype : str , ** params : Any ) -> int :
293296 """Find an API object by query parameters."""
294- uri = base_url + f" downloads/{ objtype } /"
297+ uri = f" { base_url } downloads/{ objtype } /"
295298 uri += "?" + "&" .join (f"{ k } ={ v } " for k , v in params .items ())
296- resp = requests .get (uri , headers = headers )
299+ resp = session .get (uri )
297300 if resp .status_code != 200 or not json .loads (resp .text )["objects" ]:
298301 raise RuntimeError (f"no object for { objtype } params={ params !r} " )
299302 obj = json .loads (resp .text )["objects" ][0 ]
@@ -302,11 +305,7 @@ def query_object(base_url: str, objtype: str, **params: Any) -> int:
302305
303306def post_object (base_url : str , objtype : str , datadict : dict [str , Any ]) -> int :
304307 """Create a new API object."""
305- resp = requests .post (
306- base_url + "downloads/" + objtype + "/" ,
307- data = json .dumps (datadict ),
308- headers = headers ,
309- )
308+ resp = session .post (f"{ base_url } downloads/{ objtype } /" , data = json .dumps (datadict ))
310309 if resp .status_code != 201 :
311310 try :
312311 info = json .loads (resp .text )
@@ -325,7 +324,7 @@ def sign_release_files_with_sigstore(
325324 ftp_root : str , release : str , release_files : list [tuple [str , str , str , bool , str ]]
326325) -> None :
327326 filenames = [
328- ftp_root + f" { base_version (release )} /{ rfile } " for rfile , * _ in release_files
327+ f" { ftp_root } { base_version (release )} /{ rfile } " for rfile , * _ in release_files
329328 ]
330329
331330 def has_sigstore_signature (filename : str ) -> bool :
@@ -468,9 +467,7 @@ def main() -> None:
468467 raise RuntimeError (f"duplicate slug generated: { key } " )
469468 file_dicts [key ] = file_dict
470469 print ("Deleting previous release files" )
471- resp = requests .delete (
472- args .base_url + f"downloads/release_file/?release={ rel_pk } " , headers = headers
473- )
470+ resp = session .delete (f"{ args .base_url } downloads/release_file/?release={ rel_pk } " )
474471 if resp .status_code != 204 :
475472 raise RuntimeError (f"deleting previous releases failed: { resp .status_code } " )
476473 for file_dict in file_dicts .values ():
0 commit comments