File tree Expand file tree Collapse file tree 1 file changed +18
-11
lines changed
Expand file tree Collapse file tree 1 file changed +18
-11
lines changed Original file line number Diff line number Diff line change @@ -144,17 +144,24 @@ def github_release_catalog(url: str) -> dict:
144144 Returns:
145145 Release catalog.
146146 """
147- try :
148- base_url , tag = url .replace ('https://github.com' , '/repos' ).split ('/tag/' )
149- release_catalog = github_api_request (base_url + '?per_page=100' ).json ()
150- release_entry = next (e for e in release_catalog if e ['tag_name' ] == tag )
151- if not release_entry :
152- raise ValueError (f'No release catalog entry found for { tag } .' )
153- return release_entry
154- except StopIteration :
155- raise ValueError (f'No release catalog entry found in { url } for { tag } .' )
156- except :
157- if not github_rate_limit (raise_error = True ): raise
147+ page = 1
148+ page_retries = 5
149+ while (page_retries > 0 ):
150+ try :
151+ base_url , tag = url .replace ('https://github.com' , '/repos' ).split ('/tag/' )
152+ release_catalog = github_api_request (base_url + f'?per_page=100&page={ page } ' ).json ()
153+ release_entry = next (e for e in release_catalog if e ['tag_name' ] == tag )
154+ if not release_entry :
155+ raise ValueError (f'No release catalog entry found for { tag } .' )
156+ return release_entry
157+ except StopIteration :
158+ page += 1
159+ if not page_retries :
160+ raise ValueError (f'No release catalog entry found in { url } for { tag } .' )
161+ else :
162+ page_retries -= 1
163+ except :
164+ if not github_rate_limit (raise_error = True ): raise
158165
159166################################################################################
160167# URL formatting/retrieval functions #
You can’t perform that action at this time.
0 commit comments