@@ -46,14 +46,16 @@ def login(token: str) -> Repository:
4646 return github .repository (owner , repo )
4747
4848
49- def prepare_release_pr (base_branch : str , is_major : bool , token : str ) -> None :
49+ def prepare_release_pr (
50+ base_branch : str , is_major : bool , token : str , prerelease : str
51+ ) -> None :
5052 print ()
5153 print (f"Processing release for branch { Fore .CYAN } { base_branch } " )
5254
5355 check_call (["git" , "checkout" , f"origin/{ base_branch } " ])
5456
5557 try :
56- version = find_next_version (base_branch , is_major )
58+ version = find_next_version (base_branch , is_major , prerelease )
5759 except InvalidFeatureRelease as e :
5860 print (f"{ Fore .RED } { e } " )
5961 raise SystemExit (1 )
@@ -115,7 +117,7 @@ def prepare_release_pr(base_branch: str, is_major: bool, token: str) -> None:
115117 print (f"Pull request { Fore .CYAN } { pr .url } { Fore .RESET } created." )
116118
117119
118- def find_next_version (base_branch : str , is_major : bool ) -> str :
120+ def find_next_version (base_branch : str , is_major : bool , prerelease : str ) -> str :
119121 output = check_output (["git" , "tag" ], encoding = "UTF-8" )
120122 valid_versions = []
121123 for v in output .splitlines ():
@@ -133,11 +135,11 @@ def find_next_version(base_branch: str, is_major: bool) -> str:
133135 is_feature_release = features or breaking
134136
135137 if is_major :
136- return f"{ last_version [0 ]+ 1 } .0.0"
138+ return f"{ last_version [0 ]+ 1 } .0.0{ prerelease } "
137139 elif is_feature_release :
138- return f"{ last_version [0 ]} .{ last_version [1 ] + 1 } .0"
140+ return f"{ last_version [0 ]} .{ last_version [1 ] + 1 } .0{ prerelease } "
139141 else :
140- return f"{ last_version [0 ]} .{ last_version [1 ]} .{ last_version [2 ] + 1 } "
142+ return f"{ last_version [0 ]} .{ last_version [1 ]} .{ last_version [2 ] + 1 } { prerelease } "
141143
142144
143145def main () -> None :
@@ -146,9 +148,13 @@ def main() -> None:
146148 parser .add_argument ("base_branch" )
147149 parser .add_argument ("token" )
148150 parser .add_argument ("--major" , action = "store_true" , default = False )
151+ parser .add_argument ("--prerelease" , default = "" )
149152 options = parser .parse_args ()
150153 prepare_release_pr (
151- base_branch = options .base_branch , is_major = options .major , token = options .token
154+ base_branch = options .base_branch ,
155+ is_major = options .major ,
156+ token = options .token ,
157+ prerelease = options .prerelease ,
152158 )
153159
154160
0 commit comments