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