@@ -107,15 +107,16 @@ def get_args():
107
107
description = 'Create release using Github API.' )
108
108
parser .add_argument ("-d" , "--debug" , help = "turn on debugging" ,
109
109
action = "store_true" )
110
+ parser .add_argument ("-n" , "--dryrun" , help = "perform dry run" ,
111
+ action = "store_true" )
110
112
parser .add_argument ("-u" , "--user" , nargs = 1 , metavar = 'user' ,
111
- required = True ,
112
- help = "GitHub user. Specify password with GITHUB_PASSWORD env var." )
113
+ help = "GitHub user. Specify user with GITHUB_USER and password with GITHUB_PASSWORD env var." )
113
114
parser .add_argument ("-D" , "--description" , nargs = 1 ,
114
115
metavar = 'description' , required = True ,
115
116
help = "Description text for the release" )
116
117
parser .add_argument ("-P" , "--prerelease" ,
117
118
default = False , action = "store_true" ,
118
- help = "Is this a pre-release ?" )
119
+ help = "Is this a pre-release ? (also can use OPENGROK_PRERELEASE env var) " )
119
120
parser .add_argument ("-t" , "--tag" , nargs = 1 , metavar = 'tag' ,
120
121
required = True , help = "New release tag" )
121
122
parser .add_argument ("-p" , "--proxy" , nargs = 1 ,
@@ -185,6 +186,16 @@ def upload_file(filepath, upload_url, headers, timeout, proxy=None):
185
186
def main ():
186
187
arguments = get_args ()
187
188
189
+ user = None
190
+ if not arguments .user :
191
+ try :
192
+ user = os .environ ["GITHUB_USER" ]
193
+ except :
194
+ print "Need -u or specify user with GITHUB_USER env var"
195
+ sys .exit (1 )
196
+ else :
197
+ user = arguments .user [0 ]
198
+
188
199
if arguments .debug :
189
200
logging .basicConfig (
190
201
level = logging .DEBUG ,
@@ -195,10 +206,9 @@ def main():
195
206
196
207
# There is exactly 1 item in the list.
197
208
# TODO: there should be better way how to achieve this.
198
- user = arguments .user [0 ]
199
209
description = arguments .description [0 ]
200
- tag = arguments .tag [0 ]
201
- logger .debug ("using tag {} " .format (tag ))
210
+ tag = arguments .tag [0 ]. strip ()
211
+ logger .debug ("using tag '{}' " .format (tag ))
202
212
203
213
proxy = None
204
214
if arguments .proxy :
@@ -214,6 +224,7 @@ def main():
214
224
# First check that the files indeed exist and are readable.
215
225
# TODO: can probably do it from parser using action
216
226
for file in arguments .files :
227
+ logger .debug ("checking file {}" .format (file ))
217
228
if not os .path .isfile (file ) or not os .access (file , os .R_OK ):
218
229
print "file '" + file + "' does not exist or is not readable"
219
230
sys .exit (1 )
@@ -234,16 +245,31 @@ def main():
234
245
headers = {}
235
246
headers ['Authorization' ] = _get_auth (user , password )
236
247
248
+ prerelease = False
249
+ if arguments .prerelease :
250
+ prerelease = True
251
+ else :
252
+ try :
253
+ if os .environ ["OPENGROK_PRERELEASE" ]:
254
+ prerelease = True
255
+ except :
256
+ prerelease = False
257
+
237
258
# Create new release and get the upload URL.
238
- rel_dict = get_release_dict (tag , description , arguments . prerelease )
259
+ rel_dict = get_release_dict (tag , description , prerelease )
239
260
payload = json .dumps (rel_dict )
240
261
if (arguments .debug ):
241
262
pprint (rel_dict )
242
263
pprint (payload )
243
264
upload_url = None
265
+
266
+ if arguments .dryrun :
267
+ print "Dry run in effect, exiting"
268
+ sys .exit (0 )
269
+
244
270
try :
245
271
_url = "https://api.github.com"
246
- url = '%s%s' % (_url , "/repos/vladak/foo /releases" )
272
+ url = '%s%s' % (_url , "/repos/OpenGrok/OpenGrok /releases" )
247
273
release_json = post_request (url ,
248
274
arguments .timeout , payload , headers , proxy )
249
275
upload_url = release_json ["upload_url" ]
0 commit comments