Skip to content

Commit fa6ef18

Browse files
committed
Update fetch-releases.yml
1 parent 0ed3080 commit fa6ef18

1 file changed

Lines changed: 65 additions & 14 deletions

File tree

.github/workflows/fetch-releases.yml

Lines changed: 65 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)