3535import json
3636import semver
3737
38- def get_latest_v2_prerelease_tag_name (repo_owner , repo_name ):
38+ def get_latest_v2_tag_name (repo_owner , repo_name , allow_prerelease : bool = False ):
3939 """
4040 Fetches the latest v2 prerelease tag_name from a GitHub repository's releases.
4141
@@ -61,33 +61,35 @@ def get_latest_v2_prerelease_tag_name(repo_owner, repo_name):
6161 print ("Error decoding JSON response." )
6262 return None
6363
64- v2_prereleases = []
64+ v2_releases = []
6565 for release in data :
6666 tag_name = release .get ('tag_name' )
6767 prerelease = release .get ('prerelease' )
6868
69- if tag_name and prerelease :
69+ if tag_name :
7070 try :
7171 version = semver .Version .parse (tag_name .lstrip ('v' )) # Remove 'v' prefix if present
72- if version .major == 2 and version .prerelease :
73- v2_prereleases .append (version )
72+ if allow_prerelease and version .major == 2 and version .prerelease :
73+ v2_releases .append (version )
74+ elif version .major == 2 :
75+ v2_releases .append (version )
7476 except ValueError :
7577 # Not a valid semver string, skip
7678 continue
7779
78- if not v2_prereleases :
80+ if not v2_releases :
7981 return None
8082
8183 # Sort the prereleases to find the latest
82- latest_v2_prerelease = max (v2_prereleases )
83- return f"v{ latest_v2_prerelease } " # Re-add the 'v' prefix for consistency
84+ latest_v2_release = max (v2_releases )
85+ return f"v{ latest_v2_release } " # Re-add the 'v' prefix for consistency
8486
8587###
8688# Parse the tag version and generate CFBundleShortVersionString and CFBundleVersion
8789###
8890owner = "syncthing"
8991repo = "syncthing"
90- latest_tag = get_latest_v2_prerelease_tag_name (owner , repo )
92+ latest_tag = get_latest_v2_tag_name (owner , repo )
9193
9294if latest_tag :
9395 print (f"The latest v2 prerelease tag_name for { owner } /{ repo } is: { latest_tag } " )
0 commit comments