Skip to content

Commit 472d5f7

Browse files
Release List Refactor: Remove Request for repo_data
(Based on Copilot Proposal)
1 parent e882d66 commit 472d5f7

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed

scripts/update_releases.py

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,35 +34,40 @@ def fetch_and_filter_releases():
3434

3535
url = "https://api.github.com/orgs/OpenKNX/repos?per_page=1000&type=public"
3636
repos = get_json_response(url)
37-
filtered_releases = []
38-
for repo in repos:
39-
repo_name = repo["name"]
40-
releases_url = repo["releases_url"].replace("{/id}", "")
41-
if repo_name.startswith(appPrefix) or repo_name in appSpecialNames:
42-
filtered_releases.append({repo_name: releases_url})
37+
filtered_releases = [
38+
repo
39+
{
40+
"name": repo["name"],
41+
"releases_url": repo["releases_url"],
42+
"html_url": repo["html_url"],
43+
"archived": repo["archived"]
44+
}
45+
for repo in repos
46+
if repo["name"].startswith(appPrefix) or repo["name"] in appSpecialNames
47+
]
4348
return filtered_releases
4449

4550
def fetch_release_details(filtered_releases):
4651
releases_data = {}
4752
for repo in filtered_releases:
48-
for name, url in repo.items():
49-
logging.info(f"Fetching release data {name} from {url}")
50-
releases = get_json_response(url.strip('"'))
51-
repo_data = get_json_response(f"https://api.github.com/repos/OpenKNX/{name}")
52-
releases_data[name] = {
53-
"repo_url": repo_data.get("html_url"),
54-
"archived": repo_data.get("archived"),
55-
"releases": [
56-
{
57-
"prerelease": release.get("prerelease"),
58-
"tag_name": release.get("tag_name"),
59-
"name": release.get("name"),
60-
"published_at": release.get("published_at"),
61-
"html_url": release.get("html_url")
62-
}
63-
for release in releases if isinstance(release, dict) and not release.get("draft")
64-
]
65-
}
53+
name = repo["name"]
54+
url = repo["releases_url"].replace("{/id}", "")
55+
logging.info(f"Fetching release data {name} from {url}")
56+
releases = get_json_response(url.strip('"'))
57+
releases_data[name] = {
58+
"repo_url": repo["html_url"],
59+
"archived": repo["archived"],
60+
"releases": [
61+
{
62+
"prerelease": release.get("prerelease"),
63+
"tag_name": release.get("tag_name"),
64+
"name": release.get("name"),
65+
"published_at": release.get("published_at"),
66+
"html_url": release.get("html_url")
67+
}
68+
for release in releases if isinstance(release, dict) and not release.get("draft")
69+
]
70+
}
6671
with open('releases.json', 'w') as outfile:
6772
json.dump(releases_data, outfile, indent=4)
6873
return releases_data

0 commit comments

Comments
 (0)