66
77
88def release_patch_version (repo : RepoSandbox ) -> None :
9- releases = (
10- repo .run (
11- ["gh" , "release" , "list" ],
12- capture_output = True ,
13- check = True ,
14- )
15- .stdout .decode ("utf-8" )
16- .splitlines ()
17- )
18- latest_tag = None
19- for line in releases :
20- tag , status , * _ = line .split ()
21- if status .lower () == "latest" :
22- latest_tag = tag
23- break
24- if not latest_tag :
25- repo .logger .warning ("Unable to find latest version" )
26- return None
27- check_refs = ["origin/main" , latest_tag ]
9+ if not repo .latest_release :
10+ repo .logger .warning ("Unable to find latest release version" )
11+ return
12+ check_refs = ["origin/main" , repo .latest_release ]
2813 refs = []
2914 for ref in check_refs :
3015 refs .append (
@@ -33,17 +18,18 @@ def release_patch_version(repo: RepoSandbox) -> None:
3318 .strip ()
3419 )
3520 if len (refs ) == len (check_refs ) and len (set (refs )) == 1 :
36- repo .logger .info (f"No new changes since latest release { latest_tag } " )
37- return None
38- sv = semver .VersionInfo .parse (latest_tag .lstrip ("v" ))
21+ repo .logger .info (
22+ f"No new changes since latest release { repo .latest_release } "
23+ )
24+ return
25+ sv = semver .VersionInfo .parse (repo .latest_release .lstrip ("v" ))
3926 next_patch_ver = sv .bump_patch ()
4027 new_tag = f"v{ next_patch_ver } "
4128 if repo .dry_run :
4229 repo .logger .success (f"Would release new version { new_tag } " )
43- return None
44- repo .run ([ "gh" , "release" , "create" , new_tag , "--generate-notes" ] )
30+ return
31+ repo .create_release ( new_tag )
4532 repo .logger .success (f"Released new version { new_tag } " )
46- return None
4733
4834
4935def release_action (args : Namespace ) -> None :
0 commit comments