@@ -67,6 +67,27 @@ def fetch_release_details(filtered_releases):
6767 json .dump (releases_data , outfile , indent = 4 )
6868 return releases_data
6969
70+ def fetch_dependencies (repo ):
71+ try :
72+ url = f"https://raw.githubusercontent.com/OpenKNX/{ repo ['name' ]} /main/dependencies.txt"
73+ response = requests .get (url )
74+ response .raise_for_status ()
75+ dependencies = response .text .splitlines ()
76+ return [dep .strip () for dep in dependencies if dep .strip ()]
77+ except requests .exceptions .RequestException :
78+ logging .warning (f"No dependencies.txt found for { repo ['name' ]} " )
79+ return []
80+
81+ def fetch_all_dependencies (filtered_releases ):
82+ all_dependencies = {}
83+ for repo in filtered_releases :
84+ dependencies = fetch_dependencies (repo )
85+ if dependencies :
86+ all_dependencies [repo ['name' ]] = dependencies
87+ with open ('dependencies.json' , 'w' ) as outfile :
88+ json .dump (all_dependencies , outfile , indent = 4 )
89+ return all_dependencies
90+
7091# Erzeugt zu eine kleine HTML-Datei mit Ausgabe des aktuellsten Release.
7192# Ein Pre-Release wird nur dann mit ausgegeben wenn es neuer ist als das neuste Release, oder noch kein reguläres existiert
7293def create_html_for_repo (repo_name , details ):
@@ -109,6 +130,8 @@ def main():
109130 filtered_releases = fetch_and_filter_releases ()
110131 releases_data = fetch_release_details (filtered_releases )
111132 update_html (releases_data )
133+ all_dependencies = fetch_all_dependencies (filtered_releases )
134+ logging .info (f"Dependencies: { json .dumps (all_dependencies , indent = 4 )} " )
112135
113136if __name__ == "__main__" :
114137 main ()
0 commit comments