diff options
-rw-r--r-- | docs/gl_objects/mrs.py | 8 | ||||
-rw-r--r-- | docs/gl_objects/mrs.rst | 22 | ||||
-rw-r--r-- | gitlab/objects.py | 15 |
3 files changed, 41 insertions, 4 deletions
diff --git a/docs/gl_objects/mrs.py b/docs/gl_objects/mrs.py index 0ef3b87..021338d 100644 --- a/docs/gl_objects/mrs.py +++ b/docs/gl_objects/mrs.py @@ -63,3 +63,11 @@ mr.unsubscribe() # todo mr.todo() # end todo + +# diff list +diffs = mr.diffs.list() +# end diff list + +# diff get +diff = mr.diffs.get(diff_id) +# end diff get diff --git a/docs/gl_objects/mrs.rst b/docs/gl_objects/mrs.rst index 6c83ab7..d6e10d3 100644 --- a/docs/gl_objects/mrs.rst +++ b/docs/gl_objects/mrs.rst @@ -2,10 +2,12 @@ Merge requests ############## -Use :class:`~gitlab.objects.ProjectMergeRequest` objects to manipulate MRs for -projects. The :attr:`gitlab.Gitlab.project_mergerequests` and -:attr:`Project.mergerequests <gitlab.objects.Project.mergerequests>` manager -objects provide helper functions. +You can use merge requests to notify a project that a branch is ready for +merging. The owner of the target projet can accept the merge request. + +* Object class: :class:`~gitlab.objects.ProjectMergeRequest` +* Manager objects: :attr:`gitlab.Gitlab.project_mergerequests`, + :attr:`Project.mergerequests <gitlab.objects.Project.mergerequests>` Examples -------- @@ -89,3 +91,15 @@ Mark a MR as todo: .. literalinclude:: mrs.py :start-after: # todo :end-before: # end todo + +List the diffs for a merge request: + +.. literalinclude:: mrs.py + :start-after: # diff list + :end-before: # end diff list + +Get a diff for a merge request: + +.. literalinclude:: mrs.py + :start-after: # diff get + :end-before: # end diff get diff --git a/gitlab/objects.py b/gitlab/objects.py index f9b29a0..85868b3 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1512,6 +1512,19 @@ class ProjectTagManager(BaseManager): obj_cls = ProjectTag +class ProjectMergeRequestDiff(GitlabObject): + _url = ('/projects/%(project_id)s/merge_requests/' + '%(merge_request_id)s/versions') + canCreate = False + canUpdate = False + canDelete = False + requiredUrlAttrs = ['project_id', 'merge_request_id'] + + +class ProjectMergeRequestDiffManager(BaseManager): + obj_cls = ProjectMergeRequestDiff + + class ProjectMergeRequestNote(GitlabObject): _url = '/projects/%(project_id)s/merge_requests/%(merge_request_id)s/notes' _constructorTypes = {'author': 'User'} @@ -1539,6 +1552,8 @@ class ProjectMergeRequest(GitlabObject): managers = ( ('notes', ProjectMergeRequestNoteManager, [('project_id', 'project_id'), ('merge_request_id', 'id')]), + ('diffs', ProjectMergeRequestDiffManager, + [('project_id', 'project_id'), ('merge_request_id', 'id')]), ) def _data_for_gitlab(self, extra_parameters={}, update=False, |