@@ -42,15 +42,19 @@ jobs:
4242 import json
4343 import os
4444 from datetime import datetime
45- from github import Github
45+ from github import Github, Auth, GithubException
4646 import requests
4747
4848 # Initialize GitHub client
4949 github_token = os.environ.get('GITHUB_TOKEN')
50- core_token = os.environ.get('CORE_TOKEN', github_token) # Fallback to GITHUB_TOKEN
50+ core_token = os.environ.get('CORE_TOKEN') or github_token
5151
52- # Use core token for private repo access
53- gh = Github(core_token)
52+ # Use core token for private repo access if available
53+ if core_token:
54+ auth = Auth.Token(core_token)
55+ gh = Github(auth=auth)
56+ else:
57+ gh = Github()
5458
5559 # List of all faneX-ID repositories
5660 repos = [
@@ -128,6 +132,16 @@ jobs:
128132 print(f" ✅ Latest pre-release: {latest_prerelease['tag']}")
129133 print(f" 📊 Total: {len(stable_releases)} stable, {len(prereleases)} pre-releases")
130134
135+ except GithubException as e:
136+ print(f" ⚠️ GitHub error for {repo_name}: {e}")
137+ all_releases[repo_name] = {
138+ 'latest_stable': None,
139+ 'latest_prerelease': None,
140+ 'stable_releases': [],
141+ 'prereleases': [],
142+ 'total_stable': 0,
143+ 'total_prereleases': 0
144+ }
131145 except Exception as e:
132146 print(f" ⚠️ No releases found: {e}")
133147 all_releases[repo_name] = {
@@ -150,6 +164,9 @@ jobs:
150164 except Exception as e:
151165 print(f" ⚠️ Could not fetch versions.json: {e}")
152166
167+ except GithubException as e:
168+ print(f" ⚠️ Repository {repo_name} not accessible: {e}")
169+ all_releases[repo_name] = None
153170 except Exception as e:
154171 print(f" ❌ Error fetching {repo_name}: {e}")
155172 all_releases[repo_name] = None
@@ -164,6 +181,8 @@ jobs:
164181 }
165182
166183 for repo_name, release_data in all_releases.items():
184+ if release_data is None:
185+ continue
167186 repo_short = repo_name.replace('faneX-ID/', '')
168187 output_data['repositories'][repo_short] = {
169188 'full_name': repo_name,
@@ -180,9 +199,9 @@ jobs:
180199 json.dump(output_data, f, indent=2, ensure_ascii=False)
181200
182201 print(f"\n✅ Saved releases data to {releases_file}")
183- print(f" Total repositories: {len(all_releases)}")
184- total_stable = sum(r.get('total_stable', 0) for r in all_releases.values())
185- total_prereleases = sum(r.get('total_prereleases', 0) for r in all_releases.values())
202+ print(f" Total repositories processed : {len(all_releases)}")
203+ total_stable = sum(r.get('total_stable', 0) for r in all_releases.values() if r )
204+ total_prereleases = sum(r.get('total_prereleases', 0) for r in all_releases.values() if r )
186205 print(f" Total stable releases: {total_stable}")
187206 print(f" Total pre-releases: {total_prereleases}")
188207
@@ -201,11 +220,18 @@ jobs:
201220 python << 'EOF'
202221 import json
203222 import os
204- from datetime import datetime, timedelta
205- from github import Github
223+ from datetime import datetime
224+ from github import Github, Auth, GithubException
206225
207- core_token = os.environ.get('CORE_TOKEN', os.environ.get('GITHUB_TOKEN'))
208- gh = Github(core_token)
226+ github_token = os.environ.get('GITHUB_TOKEN')
227+ core_token = os.environ.get('CORE_TOKEN') or github_token
228+
229+ # Use core token for private repo access if available
230+ if core_token:
231+ auth = Auth.Token(core_token)
232+ gh = Github(auth=auth)
233+ else:
234+ gh = Github()
209235
210236 try:
211237 repo = gh.get_repo('faneX-ID/core')
@@ -251,6 +277,13 @@ jobs:
251277 print(f"✅ Saved build info to {build_file}")
252278 print(f" Workflows tracked: {len(build_info['workflows'])}")
253279
280+ except GithubException as e:
281+ print(f"⚠️ Repository faneX-ID/core not accessible for builds: {e}")
282+ # Create empty file
283+ build_file = 'docs/data/builds.json'
284+ os.makedirs('docs/data', exist_ok=True)
285+ with open(build_file, 'w', encoding='utf-8') as f:
286+ json.dump({'last_updated': datetime.utcnow().isoformat() + 'Z', 'workflows': [], 'skipped': True}, f)
254287 except Exception as e:
255288 print(f"⚠️ Could not fetch build info: {e}")
256289 # Create empty file
@@ -270,10 +303,17 @@ jobs:
270303 import json
271304 import os
272305 from datetime import datetime
273- from github import Github
306+ from github import Github, Auth, GithubException
274307
275- core_token = os.environ.get('CORE_TOKEN', os.environ.get('GITHUB_TOKEN'))
276- gh = Github(core_token)
308+ github_token = os.environ.get('GITHUB_TOKEN')
309+ core_token = os.environ.get('CORE_TOKEN') or github_token
310+
311+ # Use core token for private repo access if available
312+ if core_token:
313+ auth = Auth.Token(core_token)
314+ gh = Github(auth=auth)
315+ else:
316+ gh = Github()
277317
278318 try:
279319 repo = gh.get_repo('faneX-ID/core')
@@ -307,6 +347,17 @@ jobs:
307347 print(f" Schema Version: {versions_data.get('manifest_schema_version', 'N/A')}")
308348 print(f" Min Core Version: {versions_data.get('min_core_version', 'N/A')}")
309349
350+ except GithubException as e:
351+ print(f"⚠️ Repository faneX-ID/core not accessible for versions: {e}")
352+ # Create fallback file
353+ version_file = 'docs/data/versions.json'
354+ os.makedirs('docs/data', exist_ok=True)
355+ with open(version_file, 'w', encoding='utf-8') as f:
356+ json.dump({
357+ 'last_updated': datetime.utcnow().isoformat() + 'Z',
358+ 'versions': {},
359+ 'skipped': True
360+ }, f)
310361 except Exception as e:
311362 print(f"⚠️ Could not fetch version info: {e}")
312363 # Create fallback file
0 commit comments