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.

(cherry picked from commit d79776f80d)
This commit is contained in:
Alex Vandiver
2022-04-28 14:17:34 -07:00
parent 64b563e1dc
commit 827d1d9d3b

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 = {}