compare-settings-to-template: Paginate through all tags.

The default page size is 30, which means this only goes back to 4.6 at
present, due to starting with `shared-...` and old `enterprise-...`
tags.
This commit is contained in:
Alex Vandiver 2022-04-28 14:17:34 -07:00 committed by Tim Abbott
parent b6f6f6db8d
commit d79776f80d
1 changed files with 20 additions and 15 deletions

View File

@ -4,6 +4,7 @@ import difflib
import os
import re
import sys
from typing import Optional
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(BASE_DIR)
@ -24,22 +25,26 @@ import requests
print("Fetching old versions of setting templates from Github...")
templ = {}
resp = requests.get("https://api.github.com/repos/zulip/zulip/tags")
if resp.status_code != 200:
print(resp.content)
sys.exit(1)
url: Optional[str] = "https://api.github.com/repos/zulip/zulip/tags"
for tag in [t["name"] for t in resp.json()]:
if re.match(r"^\d+\.\d+(\.\d+)?$", tag):
print(f" - {tag}")
resp = requests.get(
f"https://raw.githubusercontent.com/zulip/zulip/{tag}/zproject/prod_settings_template.py",
)
if resp.status_code == 200:
templ[tag] = resp.content.decode()
else:
print("Failure: ")
print(resp)
while url is not None:
resp = requests.get(url)
if resp.status_code != 200:
print(resp.content)
sys.exit(1)
url = resp.links.get("next", {}).get("url")
for tag in [t["name"] for t in resp.json()]:
if re.match(r"^\d+\.\d+(\.\d+)?$", tag):
print(f" - {tag}")
resp = requests.get(
f"https://raw.githubusercontent.com/zulip/zulip/{tag}/zproject/prod_settings_template.py",
)
if resp.status_code == 200:
templ[tag] = resp.content.decode()
else:
print("Failure: ")
print(resp)
print("Computing minimal difference...")
sequence_matchers = {}