mirror of
https://github.com/YunoHost/yunodevtools.git
synced 2024-09-03 20:16:19 +02:00
feat(clone_packages): handle api rate limit
This commit is contained in:
parent
d816bd6255
commit
8a71ebbd1e
1 changed files with 19 additions and 7 deletions
|
@ -41,6 +41,20 @@ def generate_mirror_list():
|
||||||
return existing_clones
|
return existing_clones
|
||||||
|
|
||||||
|
|
||||||
|
def request_handling_rate_limit(method, *args, **kwargs):
|
||||||
|
while True:
|
||||||
|
response = method(*args, **kwargs)
|
||||||
|
|
||||||
|
# we are not reated limited
|
||||||
|
if response.status_code != 422:
|
||||||
|
break
|
||||||
|
|
||||||
|
print("We're rate limited. Waiting for 1 minute before continuing.")
|
||||||
|
time.sleep(60)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
def generate_mirrors():
|
def generate_mirrors():
|
||||||
app_catalog = generate_catalog_repo_list()
|
app_catalog = generate_catalog_repo_list()
|
||||||
mirror_list = generate_mirror_list()
|
mirror_list = generate_mirror_list()
|
||||||
|
@ -71,7 +85,8 @@ def generate_mirrors():
|
||||||
"service": "github",
|
"service": "github",
|
||||||
}
|
}
|
||||||
|
|
||||||
create_mirror_request = requests.post(
|
create_mirror_request = request_handling_rate_limit(
|
||||||
|
requests.post,
|
||||||
"https://git.yunohost.org/api/v1/repos/migrate",
|
"https://git.yunohost.org/api/v1/repos/migrate",
|
||||||
headers=api_header,
|
headers=api_header,
|
||||||
params=f"access_token={FORGEJO_TOKEN}",
|
params=f"access_token={FORGEJO_TOKEN}",
|
||||||
|
@ -82,11 +97,7 @@ def generate_mirrors():
|
||||||
print(f"A repo named '{repo_name}' is already existing.")
|
print(f"A repo named '{repo_name}' is already existing.")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if create_mirror_request.status_code == 422:
|
if create_mirror_request.status_code != 201:
|
||||||
print("We're rate limited. Waiting for 1 minute before continuing.")
|
|
||||||
time.sleep(60)
|
|
||||||
|
|
||||||
if create_mirror_request.status_code not in (201, 422):
|
|
||||||
raise Exception(
|
raise Exception(
|
||||||
"Request failed:", create_mirror_request.status_code, create_mirror_request.text
|
"Request failed:", create_mirror_request.status_code, create_mirror_request.text
|
||||||
)
|
)
|
||||||
|
@ -99,7 +110,8 @@ def generate_mirrors():
|
||||||
"has_wiki": False,
|
"has_wiki": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
settings_mirror_request = requests.patch(
|
settings_mirror_request = request_handling_rate_limit(
|
||||||
|
requests.patch,
|
||||||
f"https://git.yunohost.org/api/v1/repos/YunoHost-Apps/{repo_name}",
|
f"https://git.yunohost.org/api/v1/repos/YunoHost-Apps/{repo_name}",
|
||||||
headers=api_header,
|
headers=api_header,
|
||||||
params=f"access_token={FORGEJO_TOKEN}",
|
params=f"access_token={FORGEJO_TOKEN}",
|
||||||
|
|
Loading…
Add table
Reference in a new issue