@@ -46,14 +46,16 @@ def login(token: str) -> Repository:
46
46
return github .repository (owner , repo )
47
47
48
48
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 :
50
52
print ()
51
53
print (f"Processing release for branch { Fore .CYAN } { base_branch } " )
52
54
53
55
check_call (["git" , "checkout" , f"origin/{ base_branch } " ])
54
56
55
57
try :
56
- version = find_next_version (base_branch , is_major )
58
+ version = find_next_version (base_branch , is_major , prerelease )
57
59
except InvalidFeatureRelease as e :
58
60
print (f"{ Fore .RED } { e } " )
59
61
raise SystemExit (1 )
@@ -115,7 +117,7 @@ def prepare_release_pr(base_branch: str, is_major: bool, token: str) -> None:
115
117
print (f"Pull request { Fore .CYAN } { pr .url } { Fore .RESET } created." )
116
118
117
119
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 :
119
121
output = check_output (["git" , "tag" ], encoding = "UTF-8" )
120
122
valid_versions = []
121
123
for v in output .splitlines ():
@@ -133,11 +135,11 @@ def find_next_version(base_branch: str, is_major: bool) -> str:
133
135
is_feature_release = features or breaking
134
136
135
137
if is_major :
136
- return f"{ last_version [0 ]+ 1 } .0.0"
138
+ return f"{ last_version [0 ]+ 1 } .0.0{ prerelease } "
137
139
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 } "
139
141
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 } "
141
143
142
144
143
145
def main () -> None :
@@ -146,9 +148,13 @@ def main() -> None:
146
148
parser .add_argument ("base_branch" )
147
149
parser .add_argument ("token" )
148
150
parser .add_argument ("--major" , action = "store_true" , default = False )
151
+ parser .add_argument ("--prerelease" , default = "" )
149
152
options = parser .parse_args ()
150
153
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 ,
152
158
)
153
159
154
160
0 commit comments