Skip to content

Commit e8823e9

Browse files
authored
Merge pull request #760 from kkoralsky/custom_cli_actions_fix
Custom cli actions fix
2 parents 84bcdc0 + 6158fd2 commit e8823e9

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

gitlab/v4/cli.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)