@@ -80,10 +80,10 @@ def do_custom(self):
8080 if gitlab .mixins .GetWithoutIdMixin not in inspect .getmro (self .cls ):
8181 data [self .cls ._id_attr ] = self .args .pop (self .cls ._id_attr )
8282 o = self .cls (self .mgr , data )
83- method_name = self .action .replace ('-' , '_' )
84- return getattr (o , method_name )(** self .args )
8583 else :
86- return getattr (self .mgr , self .action )(** self .args )
84+ o = self .mgr
85+ method_name = self .action .replace ('-' , '_' )
86+ return getattr (o , method_name )(** self .args )
8787
8888 def do_project_export_download (self ):
8989 try :
@@ -217,14 +217,14 @@ def _populate_sub_parser_by_class(cls, sub_parser):
217217 for x in mgr_cls ._from_parent_attrs ]
218218 sub_parser_action .add_argument ("--sudo" , required = False )
219219
220+ required , optional , needs_id = cli .custom_actions [name ][action_name ]
220221 # We need to get the object somehow
221- if gitlab .mixins .GetWithoutIdMixin not in inspect .getmro (cls ):
222+ if needs_id and gitlab .mixins .GetWithoutIdMixin not in inspect .getmro (cls ):
222223 if cls ._id_attr is not None :
223224 id_attr = cls ._id_attr .replace ('_' , '-' )
224225 sub_parser_action .add_argument ("--%s" % id_attr ,
225226 required = True )
226227
227- required , optional , dummy = cli .custom_actions [name ][action_name ]
228228 [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ),
229229 required = True )
230230 for x in required if x != cls ._id_attr ]
0 commit comments