@@ -44,7 +44,7 @@ UNPROTECT = 'unprotect'
44
44
SEARCH = 'search'
45
45
OWNED = 'owned'
46
46
ALL = 'all'
47
- ACTION = [LIST , GET , CREATE , UPDATE , DELETE ]
47
+ ACTIONS = [LIST , GET , CREATE , UPDATE , DELETE ]
48
48
EXTRA_ACTION = [PROTECT , UNPROTECT , SEARCH , OWNED , ALL ]
49
49
50
50
extra_actions = {
@@ -78,7 +78,7 @@ def populate_sub_parser_by_class(cls, sub_parser):
78
78
description = 'action with %s' % cls .__name__ ,
79
79
help = 'action to do'
80
80
)
81
- for action_name in ACTION :
81
+ for action_name in ACTIONS :
82
82
attr = 'can' + action_name .capitalize ()
83
83
try :
84
84
y = cls .__dict__ [attr ]
@@ -87,14 +87,15 @@ def populate_sub_parser_by_class(cls, sub_parser):
87
87
if not y :
88
88
continue
89
89
sub_parser_action = sub_parser_class .add_parser (action_name )
90
+ [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in cls .requiredUrlAttrs ]
90
91
if action_name == LIST :
91
92
[sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in cls .requiredListAttrs ]
92
93
sub_parser_action .add_argument ("--page" , required = False )
93
94
sub_parser_action .add_argument ("--per-page" , required = False )
94
95
elif action_name in [GET , DELETE ]:
95
96
if cls not in [gitlab .CurrentUser ]:
96
97
sub_parser_action .add_argument ("--id" , required = True )
97
- [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' )) for x in cls .requiredGetAttrs ]
98
+ [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in cls .requiredGetAttrs ]
98
99
elif action_name == CREATE :
99
100
[sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in
100
101
cls .requiredCreateAttrs ]
@@ -304,29 +305,15 @@ if __name__ == "__main__":
304
305
o .display (verbose )
305
306
print ("" )
306
307
307
- elif action == GET :
308
- o = do_get (cls , d )
309
- o .display (verbose )
310
-
311
- elif action == DELETE :
312
- o = do_delete (cls , d )
313
-
314
- elif action == UPDATE :
315
- o = do_update (cls , d )
316
-
317
- elif action == PROTECT :
318
- if cls != gitlab .ProjectBranch :
319
- die ("%s objects can't be protected" % what )
320
-
321
- o = do_get (cls , d )
322
- o .protect ()
308
+ elif action == DELETE or action == UPDATE :
309
+ o = globals ()['do_%s' % action .lower ()](cls , d )
323
310
324
- elif action == UNPROTECT :
311
+ elif action == PROTECT or action == UNPROTECT :
325
312
if cls != gitlab .ProjectBranch :
326
313
die ("%s objects can't be protected" % what )
327
314
328
315
o = do_get (cls , d )
329
- o . unprotect ()
316
+ getattr ( o , action ) ()
330
317
331
318
elif action == SEARCH :
332
319
if cls != gitlab .Project :
0 commit comments