Skip to content

Commit c4e6d8d

Browse files
authored
Merge pull request #3 from PepperDash/feature/build-output
Feature/build output
2 parents 6caa17d + 694e4d1 commit c4e6d8d

3 files changed

Lines changed: 175 additions & 132 deletions

File tree

.github/scripts/gather_repo_urls.py

Lines changed: 67 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@ def extract_min_essentials_version(repo):
2929
logging.error(f"Error processing repo {repo.name}: {e}")
3030
return "N/A"
3131

32-
def generate_markdown_file(repos):
33-
logging.debug("Generating markdown file.")
34-
32+
def process_repositories(repo_list):
33+
"""
34+
Processes the repositories to calculate counts and generate the markdown file.
35+
"""
36+
logging.debug("Processing repositories to calculate counts and generate markdown.")
37+
3538
# Initialize counters
3639
total_epi_repos = 0
3740
total_release_1_x = 0
@@ -40,17 +43,35 @@ def generate_markdown_file(repos):
4043

4144
with open('README.md', 'w', newline='\n') as file:
4245
file.write("# Essentials Plugin Library\n\n")
43-
46+
4447
# Iterate through repos to calculate counts
45-
for repo in sorted(repos, key=lambda x: x.name):
48+
for repo in sorted(repo_list, key=lambda x: x.name):
4649
if repo.name.startswith('epi-'):
50+
logging.debug(f"Processing repository: {repo.name}")
4751
total_epi_repos += 1
48-
releases = repo.get_releases()
52+
53+
# Convert PaginatedList to list before accessing
54+
releases = list(repo.get_releases())
55+
tags = list(repo.get_tags())
56+
4957
current_release = "N/A"
50-
for release in releases:
51-
if not release.prerelease:
52-
current_release = release.tag_name
53-
break
58+
latest_build_tag = "N/A"
59+
60+
# Get the latest release
61+
if releases:
62+
for release in releases:
63+
if not release.prerelease:
64+
current_release = release.tag_name
65+
break
66+
else:
67+
logging.warning(f"No releases found for repository: {repo.name}")
68+
69+
# Get the latest build tag
70+
if tags:
71+
latest_build_tag = tags[0].name # Get the most recent tag
72+
else:
73+
latest_build_tag = "N/A" # Handle empty tags list
74+
logging.warning(f"No tags found for repository: {repo.name}")
5475

5576
# Count based on release version
5677
if current_release.startswith("1."):
@@ -69,24 +90,37 @@ def generate_markdown_file(repos):
6990
file.write(f"| Total Essentials N/A | {total_release_na} |\n\n\n")
7091

7192
# Write the table header
72-
file.write("| Repository | Visibility | Release | Min Essentials |\n")
73-
file.write("|-------------------------------------|------------|---------|----------------|\n")
93+
file.write("| Repository | Visibility | Release | Build Output | Min Essentials |\n")
94+
file.write("|-------------------------------------|------------|---------|--------------|----------------|\n")
7495

7596
# Write the table rows
76-
for repo in sorted(repos, key=lambda x: x.name):
97+
for repo in sorted(repo_list, key=lambda x: x.name):
7798
if repo.name.startswith('epi-'):
7899
logging.debug(f"Processing repo: {repo.name}, Public: {not repo.private}")
79100
visibility = "Public" if not repo.private else "Internal"
80-
releases = repo.get_releases()
101+
102+
# Convert PaginatedList to list before accessing
103+
releases = list(repo.get_releases())
104+
tags = list(repo.get_tags())
105+
81106
current_release = "N/A"
82-
for release in releases:
83-
if not release.prerelease:
84-
current_release = release.tag_name
85-
break
107+
latest_build_tag = "N/A"
108+
109+
# Get the latest release
110+
if releases:
111+
for release in releases:
112+
if not release.prerelease:
113+
current_release = release.tag_name
114+
break
115+
116+
# Get the latest build tag
117+
if tags:
118+
latest_build_tag = tags[0].name # Get the most recent tag
86119

87120
min_essentials_version = extract_min_essentials_version(repo)
88121

89-
file.write(f"| [{repo.name}]({repo.html_url}) | {visibility} | {current_release} | {min_essentials_version} |\n")
122+
file.write(f"| [{repo.name}]({repo.html_url}) | {visibility} | {current_release} | {latest_build_tag} | {min_essentials_version} |\n")
123+
90124

91125
def main():
92126
logging.debug("Starting script.")
@@ -114,11 +148,21 @@ def main():
114148

115149
try:
116150
org = g.get_organization(org_name)
117-
repos = list(org.get_repos(type='all')) # Fetch all types of repositories
118-
logging.debug(f"Number of repos before filtering: {len(repos)}")
119-
generate_markdown_file(repos)
151+
repos = org.get_repos(type='all')
152+
logging.debug(f"Repos object type: {type(repos)}")
153+
154+
# Explicitly iterate over the PaginatedList to collect repositories
155+
repo_list = []
156+
for repo in repos:
157+
logging.debug(f"Fetched repo: {repo.name}")
158+
repo_list.append(repo)
159+
logging.debug(f"Number of repos after iteration: {len(repo_list)}")
160+
161+
# Process the repositories after the list is fully populated
162+
process_repositories(repo_list)
120163
except Exception as e:
121164
logging.error(f"Error accessing organization or repositories: {e}")
122165

166+
123167
if __name__ == "__main__":
124-
main()
168+
main()

.github/workflows/gather-plugin-urls.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ on:
1313

1414
jobs:
1515
gather-repo-urls:
16-
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/feature/add-total-counts'
1716
runs-on: ubuntu-latest
1817
steps:
1918
- name: Log branch and event type

0 commit comments

Comments
 (0)