Skip to content

Commit 11b5f7b

Browse files
Release List: Draft for Dependencies as Table
(Copilot Proposal + Rework)
1 parent 2a56513 commit 11b5f7b

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

.github/workflows/update_releases_list.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
run: |
3636
git config --global user.name 'github-actions[bot]'
3737
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
38-
git add releases_list.html releases.json releases/
38+
git add releases_list.html releases.json releases/ dependencies_table.html
3939
4040
if git diff-index --quiet HEAD; then
4141
echo "No changes to commit"

scripts/update_releases.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,42 @@ def update_html(releases_data):
142142
outfile.write(f'<li>{prefix}<a href="{release["html_url"]}">{release["name"]} ({release["tag_name"]})</a></li>\n')
143143
outfile.write('</ul>\n')
144144

145+
def generate_html_table(dependencies):
146+
all_keys = set()
147+
for dep in dependencies.values():
148+
all_keys.update(dep.keys())
149+
150+
all_keys = sorted(all_keys, key=lambda k: sum(1 for dep in dependencies.values() if k in dep), reverse=True)
151+
152+
html_content = '<html>\n<head>\n<title>Dependencies Table</title>\n</head>\n<body>\n'
153+
html_content += '<table border="1">\n<tr><th>Dependency</th>'
154+
155+
for key in all_keys:
156+
html_content += f'<th>{key}</th>'
157+
html_content += '</tr>\n'
158+
159+
for dep_name, dep_details in dependencies.items():
160+
html_content += f'<tr><td>{dep_name}</td>'
161+
for key in all_keys:
162+
if key in dep_details:
163+
html_content += '<td>X</td>'
164+
else:
165+
html_content += '<td></td>'
166+
html_content += '</tr>\n'
167+
168+
html_content += '</table>\n</body>\n</html>'
169+
# Write to HTML file
170+
with open('dependencies_table.html', 'w') as file:
171+
file.write(html_content)
172+
return html_content
173+
145174
def main():
146175
filtered_releases = fetch_and_filter_releases()
147176
releases_data = fetch_release_details(filtered_releases)
148177
update_html(releases_data)
149178
all_dependencies = fetch_all_dependencies(filtered_releases)
150-
logging.info(f"Dependencies: {json.dumps(all_dependencies, indent=4)}")
179+
# Generate Dependencies Table
180+
html_content = generate_html_table(all_dependencies)
151181

152182
if __name__ == "__main__":
153183
main()

0 commit comments

Comments
 (0)