@@ -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
4550def 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