Skip to content

Commit 2124442

Browse files
committed
Fix MergeRequests API (ugly fix...)
The GitLab API is inconsistent for merge requests, occasionally using the singular 'mergerequest' in the url instead of the plural form.
1 parent addbede commit 2124442

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

gitlab3/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,11 @@ def fn(**kwargs):
141141

142142
def _add_get_fn(api, name, parent):
143143
"""Create a <PARENT_API>.get_<name>() function"""
144+
fixed_url = api._q_url.replace('merge_requests', 'merge_request')
144145
def fn(key=[], **kwargs):
145146
if key != []:
146147
key = [key]
147-
data = parent._get(api._q_url, addl_keys=key, data=kwargs)
148+
data = parent._get(fixed_url, addl_keys=key, data=kwargs)
148149
ret = api(parent, data)
149150
return ret
150151
setattr(parent, 'get_' + name, fn)
@@ -181,10 +182,11 @@ def fn(*args, **kwargs):
181182

182183
def _add_edit_fn(api, name, parent):
183184
"""Create <PARENT_API>.update_name(obj) and <API>.save() functions"""
185+
fixed_url = api._q_url.replace('merge_requests', 'merge_request')
184186
def parent_fn(obj):
185187
return obj.save()
186188
def self_fn(self):
187-
return self._put(api._q_url, data=self._get_data())
189+
return self._put(fixed_url, data=self._get_data())
188190
setattr(parent, 'update_' + name, parent_fn)
189191
setattr(api, 'save', self_fn)
190192

@@ -219,6 +221,7 @@ def _add_extra_fn(api, action_def, parent=None):
219221
url += action_def.url
220222
req_fn = _get_http_request_fn(api, http_method)
221223
num_req_params = len(url_params) + len(required_params) + 1 # + _self
224+
url = url.replace('merge_requests', 'merge_request')
222225

223226
def fn(*args, **kwargs):
224227
if len(args) != num_req_params:

gitlab3/_api_definition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ class MergeRequest(APIDefinition):
300300
required_params = [
301301
'source_branch',
302302
'target_branch',
303-
'assignee_id', # TODO: is this required or not?
304303
'title',
305304
]
305+
optional_params = [ 'assignee_id' ]
306306

307307
class PostCommentAction(ExtraActionDefinition):
308308
"""gl.Project.MergeRequest.post_comment(note)"""

0 commit comments

Comments
 (0)